1) 遠端倉庫相關指令
檢出倉庫:$ git clone git://github.com/jquery/jquery.git
檢視遠端倉庫:$ git remote -v
添加遠端倉庫:$ git remote add [name] [url]
删除遠端倉庫:$ git remote rm [name]
修改遠端倉庫:$ git remote set-url --push[name][newUrl]
拉取遠端倉庫:$ git pull [remoteName] [localBranchName]
推送遠端倉庫:$ git push [remoteName] [localBranchName]
2)分支(branch)操作相關指令
檢視本地分支:$ git branch
檢視遠端分支:$ git branch -r
建立本地分支:$ git branch [name] ----注意新分支建立後不會自動切換為目前分支
切換分支:$ git checkout [name]
建立新分支并立即切換到新分支:$ git checkout -b [name]
删除分支:$ git branch -d [name] ---- -d選項隻能删除已經參與了合并的分支,對于未有合并的分支是無法删除的。如果想強制删除一個分支,可以使用-D選項
合并分支:$ git merge [name] ----将名稱為[name]的分支與目前分支合并
建立遠端分支(本地分支push到遠端):$ git push origin [name]
删除遠端分支:$ git push origin :heads/[name]
我從master分支建立了一個issue5560分支,做了一些修改後,使用git push origin master送出,但是顯示的結果卻是'Everything up-to-date',發生問題的原因是git push origin master 在沒有track遠端分支的本地分支中預設送出的master分支,因為master分支預設指向了origin master 分支,這裡要使用git push origin issue5560:master 就可以把issue5560推送到遠端的master分支了。
如果想把本地的某個分支test送出到遠端倉庫,并作為遠端倉庫的master分支,或者作為另外一個名叫test的分支,那麼可以這麼做。
$ git push origin test:master // 送出本地test分支作為遠端的master分支 //好像隻寫這一句,遠端的github就會自動建立一個test分支
$ git push origin test:test // 送出本地test分支作為遠端的test分支
如果想删除遠端的分支呢?類似于上面,如果:左邊的分支為空,那麼将删除:右邊的遠端的分支。
$ git push origin :test // 剛送出到遠端的test将被删除,但是本地還會儲存的,不用擔心
3)版本(tag)操作相關指令
檢視版本:$ git tag
建立版本:$ git tag [name]
删除版本:$ git tag -d [name]
檢視遠端版本:$ git tag -r
建立遠端版本(本地版本push到遠端):$ git push origin [name]
删除遠端版本:$ git push origin :refs/tags/[name]
推送所有tag: git push origin --tags
tag遷出branch:
git checkout tagname
git checkout -b new_branch_name
4)git stash暫存相關指令
git stash: 備份目前的工作區的内容,從最近的一次送出中讀取相關内容,讓工作區保證和上次送出的内容一緻。同時,将目前的工作區内容儲存到Git棧中。
git stash pop: 從Git棧中讀取最近一次儲存的内容,恢複工作區的相關内容。由于可能存在多個Stash的内容,是以用棧來管理,pop會從最近的一個stash中讀取内容并恢複。
git stash list: 顯示Git棧内的所有備份,可以利用這個清單來決定從那個地方恢複。
git stash clear: 清空Git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。
5)git rebase 使用
目前分支問題develop,從master拉取最新代碼
git pull --rebase origin master 或者 git rebase develop
先将develop分支的代碼checkout出來,作為工作目錄
然後将master分支從develop分支建立起的所有改變的更新檔,依次打上。如果打更新檔的過程沒問題,rebase就搞定了
如果打更新檔的時候出現了問題,就會提示你處理沖突。處理好了,可以運作git rebase –continue繼續直到完成
如果你不想處理,你還是有兩個選擇,一個是放棄rebase過程(運作git rebase –abort),另一個是直接用test分支的取代目前分支的(git rebase –skip)。
6) 工具
SourceTree & git bash