git branch //查看分支
git branch aming //建立分支
git checkout aming //切換到了aming分支下
再用git branch查看,會看到有兩個分支master和aming,當前使用的分支前面會有一個*在aming分支下 ,編輯2.txt,並提交到新分支
echo "askdfjlksadjflk" > 2.txt
git add 2.txt
git commit -m "laksjdflksjdklfj"
切換回master分支
git checkout master //此時cat 2.txt發現並無更改內容git
分支的合併:orm
git checkout master //合併分支以前,先切換到目標分支
git merge aming //把aming分支合併到了master
若是master分支和aming分支都對2.txt進行了編輯,當合並時會提示衝突,須要先解決衝突才能夠繼續合併。
解決衝突的方法是在master分支下,編輯2.txt,改成aming分支裏面2.txt的內容。 而後提交2.txt,再合併aming分支。
可是這樣有一個問題,萬一master分支更改的內容是咱們想要的呢? 能夠編輯2.txt內容,改成想要的,而後提交。切換到aming分支,而後合併master分支到aming分支便可(倒着合併)。合併分支有一個原則,那就是要把最新的分支合併到舊的分支。也就是說merge後面跟的分支名字必定是最新的分支。
git branch -d aming //刪除分支
若是分支沒有合併,刪除以前會提示,那就不合並,強制刪除
git branch -D amingci
使用分支的原則:開發
對於分支的應用,建議你們以這樣的原則來:
master分支是很是重要的,線上發佈代碼用這個分支,平時咱們開發代碼不要在這個分支上。
建立一個dev分支,專門用做開發,只有當發佈到線上以前,纔會把dev分支合併到master 開發人員應該在dev的基礎上再分支成我的分支,我的分支(在本身pc上)裏面開發代碼,而後合併到dev分支
dev分支合併bob分支的命令是:
git checkout dev //先切換到dev分支,而後
git merge bobrem
本地新建的分支若是不推送到遠程,對其餘人就是不可見的
查看遠程分支 git ls-remote origin,能夠看到全部分支
對於git push分支分兩種狀況
當本地分支和遠程分支一致時
git push會把全部本地分支的變動一同推送到遠程,若是想只推送一個分支,使用git push origin branch-name
當本地分支比遠程分支多,默認git push 只推送本地和遠程一致的分支,想要把多出來的本地分支推送到遠程時,使用git push origin branch-name 若是推送失敗,先用git pull抓取遠程的新提交
git clone的時候默認只把master分支克隆下來,若是想把全部分支都克隆下來,須要手動建立,在本地建立和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱要一致it
標籤相似於快照功能,能夠給版本庫打一個標籤,記錄某個時刻庫的狀態。也能夠隨時恢復到該狀態。
git checkout master 先切到master分支上
git tag v1.0 給master打一個標籤v1.0
git show v1.0 查看標籤信息
git tag 能夠查看全部的標籤
tag是針對commit來打標籤的,因此能夠針對歷史的commit來打tag
git log --pretty=oneline --abbrev-commit //先查看歷史的commit
git tag v0.9 46d3c1a //針對歷史commit打標籤
git tag -a v0.8 -m "tag just v1.1 and so on" 5aacaf4 //能夠對標籤進行描述
git tag -d v0.8 //刪除標籤
git push origin v1.0 //推送指定標籤到遠程
git push --tag origin //推送全部標籤
若是本地刪除了一個標籤,遠程也想要刪除須要這樣操做:
git tag v1.0 -d //刪除本地標籤
git push origin :refs/tags/v1.0 //刪除遠程標籤ast
git commit 這個命令是否是有點長? 用別名能夠提升咱們的工做效率
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.br branch
查看git別名使用命令
git config --list |grep alias
查詢log小技巧:
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
取消別名
git config --global --unset alias.brform