-
本地倉(cāng)庫(kù)與遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián);
方法一:
git clone ***方法二:
git init
git remote add origin *** -
添加追蹤文件
git add 文件夾/ 添加整個(gè)文件夾及內(nèi)容
git add *.文件類型 添加目錄中所有此文件類型的文件
git add . :他會(huì)監(jiān)控工作區(qū)的狀態(tài)樹(shù),使用它會(huì)把工作時(shí)的所有變 化提交到暫存區(qū),包括文件內(nèi)容修改(modified)以及新文件(new)和刪除的文件。
git add -u :他僅監(jiān)控已經(jīng)被add的文件(即tracked file)抠蚣,不會(huì)提交新文件(untracked file)。(git add --update的縮寫) -
本地版本回退
git reset --hard HEAD 覆蓋工作區(qū)
git reset HEAD file 將某個(gè)文件回退到最新?tīng)顟B(tài)粹懒,不會(huì)覆蓋工作區(qū)
git checkout -- file 將工作區(qū)的文件還原至最新?tīng)顟B(tài) -
本地分支與遠(yuǎn)程分支關(guān)聯(lián)(遠(yuǎn)程追蹤)
方法一:
git checkout -b lbname origin/rbname表示創(chuàng)建本地lbname分支宾添,并切換到該分支,并與遠(yuǎn)程分支建立追蹤關(guān)系
方法二:
在本地分支執(zhí)行:
git branch -u origin/rbname方法三:
git push -u origin lbname
-u 參數(shù)為--set-upstream的縮寫
語(yǔ)法:git push origin <source>:<destination>债沮, 其中<>參數(shù)為refspec類型,是 Git 能識(shí)別的位置(比如分支 foo 或者 HEAD~1)查看地分支關(guān)聯(lián)(跟蹤)的遠(yuǎn)程分支之間的對(duì)應(yīng)關(guān)系
git branch -vv
-
tag操作
git tag tagname [head] 創(chuàng)建tag
git checkout -b lbname tagname 把 tag 快照對(duì)應(yīng)的代碼拉取到一個(gè)分支上
git push --tags 將tags推送到遠(yuǎn)程倉(cāng)庫(kù)(git push默認(rèn)不會(huì)推tags) -
分支合并
兩個(gè)分支本鸣,master疫衩,bugFix
方法一: git merge (把目的分支的提交記錄拿到當(dāng)前分支,形成新的提交記錄)
git merge master
git checkout bugFix
git merge master //此處可fast forward荣德,因?yàn)楹喜⒑蟮奶峤焕^承自bugFix方法二: git rebase. (把當(dāng)前分支的提交記錄闷煤,拿到目的分支上)Rebase 實(shí)際上就是取出一系列的提交記錄,“復(fù)制”它們涮瞻,然后在另外一個(gè)地方逐個(gè)的放下去鲤拿。
git rebase master
git checkout bugFix
git rebase master //此處fast forward。 -
沖突問(wèn)題解決
git rebase 出現(xiàn)沖突后:
git rebase --abort 取消這次rebase操作署咽,切回到原分支
git rebase --skip 忽略這次補(bǔ)丁近顷,即這次要rebase的提交記錄不要了
git rebase --continue 解決沖突后,git add, 然后繼續(xù)這次rebasegit merge 出現(xiàn)沖突后:
手動(dòng)解決沖突文件后
git add .
git commit -m '解決合并**的沖突' -
整理commit詳細(xì)步驟
git rebase -i commitId
commitId 為從哪次提交開(kāi)始整理宁否。
pick =要這條commit 窒升,什么都不改
reword =要這條commit ,但要改commit message
edit =要這條commit慕匠,但要改commit的內(nèi)容
squash =要這條commit饱须,但要跟前面那條合并,并保留這條的messages
fixup = squash +只使用前面那條commit的message 台谊,舍棄這條message
exec =執(zhí)行一條指令(但我沒(méi)用過(guò))注: 修改完成后冤寿,會(huì)一條條指令順序執(zhí)行。若有沖突青伤,則停止; 修改完沖突后殴瘦,(git add . git rebase --continue)狠角,指令會(huì)繼續(xù)執(zhí)行
-
更新遠(yuǎn)程分支列表
git remote update --prune
-
添加不追蹤文件
git update-index --assume-unchanged <取消跟蹤的文件>
已追蹤的不想再追蹤
git rm --cached -r 文件夾
git commit -m "****"注: 當(dāng)我們需要?jiǎng)h除暫存區(qū)或分支上的文件, 同時(shí)工作區(qū)也不需要這個(gè)文件了, 可以使用‘ git rm file_path’ ;當(dāng)我們需要?jiǎng)h除暫存區(qū)或分支上的文件, 但本地又需要使用, 只是不希望這個(gè)文件被版本控制, 可以使用'git rm --cached file_path'
-
與遠(yuǎn)程的同步
git pull --rebase
參考:
https://www.cnblogs.com/dracohan/p/5241511.html
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000