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
修行之道 關注大師的言行, 跟隨大師的舉動, 和大師一併修行, 領會大師的意境, 成爲真正的大師。