git有漂亮的WEB界面css
很是自由的本地commit(不用担忧是否影响到他/她人) 操做稍微复杂了一点点。html
git属于分布式的版本管理工具。每一个人都有所有的提交历史。git
经过git push 和 git pull 将更新提交到远端github
参考: http://www.bootcss.com/p/git-guide/编辑器
入门分布式
git init
第二种方法 git clone <仓库的地址>
1.4 推送改动 添加仓库的地址(若是不是clone出来的仓库,须要初始化下origin的地址)ide
git remote add origin <git-repo-server-addr>
推送svn
git push origin master
git的默认分支就是master(经过git branch能够查看当前的分支) 这句命令的意思就是将master分支里的内容,推送到名叫origin的远程仓库去。工具
从工做目录到暂存区fetch
git add <file-name>
从暂存区到HEAD
git commit git reset HEAD~ # 执行后,就行没有commit同样 git reset --hard HEAD~ # 这个有点暴力,执行后,就像你全部的修改也都没了
改动没有提交
git checkout <your-filename>
改动已经提交
git reset --hard HEAD~ # 放弃一次提交 git reset --hard HEAD~2 # 放弃两次提交 git reset --hard <sha-版本号> # 回滚到某个版本号
还有一种办法处理以及提交的问题(最新研究出来的)
# 查看历史,找到须要回滚到的版本 git log # 回到那个版本, 注意后面那个 "." git checkout <sha> . # 而后commit就行了 git commit -am "...."
使用文本编辑器,打开冲突的文件
处理完冲突后,
git add <冲突的文件> # 跟svn比,没有svn resolved这一步 git commit -m “提交记录”
若是执行了git merge
,可是想放弃一次代码合并
git merge --abort
建立,并却换到新的分支(如dev分支)
git checkout -b dev
却换回来(默认的分支是master)
git checkout master
合并分支的内容
git merge dev
若是有冲突,参考上面的,人肉处理就行了 删除远程分支(删除test)
git push origin :test
git config --global color.ui true
ref: http://git-qa.gz.netease.com/gzleiyingfeng/git_course/tree/master
直接把须要忽略的文件列表放到.gitignore文件里就能够了
$ cat .gitignore # frameworks/base # 此为注释,被git忽略 *.a # 忽略全部.a结尾的文件 !lib.a # 但lib.a除外,! build/ # 忽略build目录下的全部文件 doc/*.txt # 忽略doc目录下的全部.txt结尾文件,但不包含doc/notes/*.txt /TODO # 仅忽略项目根目录下的TODO文件,但不包含subdir/TODO
参考
fork 一份代码(假定为 myfork ),myfork的主干始终和oschina-url的主干保持一致。
如何保持和主干的代码一致
git remote add upstream oschina-url
git pull upstream master
查看变动后更新
git fetch upstream master git diff master FETCH_HEAD git merge FETCH_HEAD
新建 feature 分支,有任何修改都在该分支上进行开发。
从 upstream 的主干新建一个要 pr 的分支(假定为 pr-example),提取 feature 分支中要 pr 的修改。
查看 feature 分支要pr的提交: git log (假定hash为 e1ad54d)
# 建立pr-example分支 git checkout -b pr-example upstream/master # 分支提取提交 git cherry-pick e1ad54d # 提交到远程仓库 git push -u origin pr-example
经过 pr-example 分支向 upstream 的主干发起 pull request。
pr被接受以后,删除该分支
git branch -d pr-example # 删除远端分支 git push origin :pr-example
cherry-pick 使用:
更多用法请参考git help cherry-pick
(注: pr是pull request的简称)
ref: http://www.yangzhiping.com/tech/github.html
修行之道 关注大师的言行, 跟随大师的举动, 和大师一并修行, 领会大师的意境, 成为真正的大师。