【Git】常用命令commit提交,push推送,merge,新增分支branch
1.常用操作:
1.新增跟蹤檔案
git add .
或
git add -A
根據ignore的配置,新增跟蹤檔案,其中的.或-A表示新增所有更改過的檔案。
2.檢視狀態
git status
3.提交到本地:
git commit -m "說明"
引號內為本次提交的說明文字。如果說明文字很長需要換行,則用單引號來換行,如:
git commit -m '
第一行
第二行
'
(注意開始和結束時的兩個單引號)
4.推送到預設分支
git push
如果當前分支是master則自動推送到maser分支。如果是遠端分支的話,此時github伺服器上才是會被真正的改變。
5.從遠端分支合併到本地
git pull
當合並完後,如果提示有衝突,則輸入
mergetool beyondmerge
進行衝突處理,然後在push上去。
6..gitignore修改之後,清除快取,使之重新生效,注意前兩行後面的小數點。
git rm -r --cached .
git add .
git commit -m "xxxx"
7.徹底回退到某個commit
先使用以下命令檢視想回退到的commit的id是多少,id就是一串長長的數字。
git log
然後使用:(注意命令中的兩個“-”)以下命令,徹底回退到這個commitid上。
git reset --hard <commit_id>
如果想清空這個commitid之後所有已經提交了的commit,則繼續執行以下命令:
git push origin HEAD --force 注意是兩個橫崗
2.分支操作
1.檢視所有分支
用命令:git branch -a
$ git branch -a
* gym
master
remotes/origin/HEAD -> origin/master
remotes/origin/gym
remotes/origin/master
結果裡一共5個分支,帶remotes的是遠端分支,不帶的是本地分支。前面帶*號的表現當前所處的分支。
master就是主分支,當你從github上clone下之後,預設就是clone的主分支(master)。那麼那個origin是什麼意思呢?你可以把他理解為你倉庫的網址,如:https://www.xxxx.com/123.git。
2.建立新分支
命令:git branch test。將會建立一個名為test的新分支
然後再次檢視所有分支:
git branch -a
* gym
master
test
remotes/origin/HEAD -> origin/master
remotes/origin/gym
remotes/origin/master
可以看到已經有了新分支test。
接下來再把新分支推送到遠端分支(github倉庫上):
$ git push origin test
然後再檢視所有分支:
$ git branch -a
* gym
master
test
remotes/origin/HEAD -> origin/master
remotes/origin/gym
remotes/origin/master
remotes/origin/test
可以看到remotes中又多了一個遠端test分支。
3.切換分支
$ git checkout test
然後再次檢視所有分支,你就會 發現這次*號在test分支上面。
如果以後在push,pull的時候就想用這個分支了,不用master分支了,就繼續輸入:
$ git push --set-upstream origin test
將pull push等操作的預設分支設為test,否則以後pull push的時候每次都要指定哪個分支。
4.刪除本地分支test
$ git branch -d test
已刪除分支 test(曾為 eef866f)。
再次檢視所有分支:
$ git branch -a
* gym
master
remotes/origin/HEAD -> origin/master
remotes/origin/gym
remotes/origin/master
remotes/origin/test
發現本地test分支已經沒有了。
5.刪除遠端分支
刪除完本地,就應該刪除遠端了。輸入以下命令:
$ git branch -r -d origin/test
已刪除遠端分支 origin/test(曾為 eef866f)。
然後在輸入:
$ git push origin --delete test
才是真正的刪除遠端分支。
6.合併分支
如果我們想把test分支合併到master分支中,該怎麼弄呢?首先先切換到master分支,然後執行
git merge test
7.衝突合併
git mergetool
然後輸入:
beyond compare
寫在最後:如果大家實在記不住這些複雜的命令,推薦使用SourceTree這個視覺化工具,絕對好用。