刪除分支
$ git branch -d branchName
創(chuàng)建分支
$ git branch branchName
切換分支
$ git checkout branchName
創(chuàng)建并切換到分支上
$ git checkout -b branchName
合并分支
$ git merge branchName
抓取分支-- 抓取遠(yuǎn)程分支信息到本地
git fetch -a
多人協(xié)作時(shí)俄周,大家都會(huì)往master和dev分支上推送各自的修改焰薄。
現(xiàn)在,模擬一個(gè)你的小伙伴梅誓,可以在另一臺(tái)電腦(注意要把SSH Key添加到GitHub)或者同一臺(tái)電腦的另一個(gè)目錄下克虑辍:
$ git clone git@github.com:michaelliao/learngit.git
Cloning into 'learngit'...
remote: Counting objects: 46, done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 46 (delta 16), reused 45 (delta 15)
Receiving objects: 100% (46/46), 15.69 KiB | 6 KiB/s, done.
Resolving deltas: 100% (16/16), done.
當(dāng)你的小伙伴從遠(yuǎn)程庫(kù)clone時(shí)竞思,默認(rèn)情況下搞坝,你的小伙伴只能看到本地的master分支娘荡。不信可以用git branch命令看看:
$ git branch
- master
現(xiàn)在旦袋,你的小伙伴要在dev分支上開(kāi)發(fā),就必須創(chuàng)建遠(yuǎn)程origin的dev分支到本地它改,于是他用這個(gè)命令創(chuàng)建本地dev分支:
$ git checkout -b dev origin/dev
git pull也失敗了疤孕,原因是沒(méi)有指定本地dev分支與遠(yuǎn)程origin/dev分支的鏈接,根據(jù)提示央拖,設(shè)置dev和origin/dev的鏈接
$ git branch --set-upstream dev origin/dev
Branch dev set up to track remote branch dev from origin.
再pull:
$ git pull
Auto-merging hello.py
CONFLICT (content): Merge conflict in hello.py
Automatic merge failed; fix conflicts and then commit the result.
本地新建分支祭阀,提交到遠(yuǎn)程 或 刪除遠(yuǎn)程分支
git push origin local_branch:remote_branch
- 這個(gè)操作,local_branch必須為你本地存在的分支鲜戒,remote_branch為遠(yuǎn)程分支专控,如果remote_branch不存在則會(huì)自動(dòng)創(chuàng)建分支。
- 類(lèi)似遏餐,git push origin :remote_branch伦腐, [local_branch留空的話則是刪除遠(yuǎn)程remote_branch分支]
將本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián)
git remote add origin git@github.com:YotrolZ/helloTest.git
git ignore 文件不生效解決
把某些目錄或文件加入忽略規(guī)則,按照上述方法定義后發(fā)現(xiàn)并未生效失都,
原因是.gitignore只能忽略那些原來(lái)沒(méi)有被追蹤的文件柏蘑,
如果某些文件已經(jīng)被納入了版本管理中,則修改.gitignore是無(wú)效的粹庞。
那么解決方法就是先把本地緩存刪除(改變成未被追蹤狀態(tài))咳焚,然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'