總結(jié)
git 操作相關(guān)
1、創(chuàng)建新分支并切換到該新分支以及常用git操作
git checkout -b newfeature
查看文件修改情況 :git status
提交所有已更改文件 :git add .
提交本地文件到本地倉庫:git commit -m "XXX"
提交本地更改到遠(yuǎn)程倉庫:git push 。如果遠(yuǎn)程倉庫沒有合本地本分支對應(yīng)的分支,使用 git push --set-upstream origin master(省略形式為:git push -u origin master)
2、添加其他的倉庫作為遠(yuǎn)程倉庫 ,可將倉庫的代碼同步到其他倉庫
git remote add xyz
git remote add xyz git@git.corp.xxx.git
git remote // 查看遠(yuǎn)程的分支
git push xyz // 將當(dāng)前分支推送到對應(yīng)的遠(yuǎn)程倉庫
3、git 回退代碼
git log
git reset --hard e9c7f41d9cd54e659de7e412fbc05a0dd9179101
git push -f -u origin master // 強(qiáng)制推送
4、Git message 提交 Type
* feat:new feature,新的功能
* fix:bug fix
* refactor:代碼重構(gòu),沒有功能修改
* optimize:性能優(yōu)化、增加日志打點(diǎn)等,沒有功能修改
* style:代碼格式修改,沒有任何代碼語義的變化
* doc:文檔、注釋修改
* test:添加或者修改測試用例,沒有線上代碼修改
* build:發(fā)布新版本、pom 修改、等構(gòu)件發(fā)布,沒有線上代碼修改
* revert:之前提交的revert,由 git revert 命令生成
* WIP:Work In Progress,還沒有完成的功能,為了盡可能讓提交保持合適的大小
PS. 按照上述類型提交時(shí)方式為: git commit -m "feat: 新增成員tab" (feat后英文冒號空格)
PPS. 可安裝包實(shí)現(xiàn)git cz 命令,自動提示以上幾種命令。使用gitmoji -c 提交帶提交類型emoji :http://www.mianshigee.com/project/gitmoji-cli
5、git將當(dāng)前分支上修改的東西轉(zhuǎn)移到新建分支
不需要在A分支做commit,只需要在A分支新建B分支,然后切換過去。這個(gè)時(shí)候你會發(fā)現(xiàn)修改的東西在A,B分支都有。這個(gè)時(shí)候在B分支commit,那么這些修改保留在B分支上,再切換到A分支上會發(fā)現(xiàn)修改都沒有保留下來。
6、master分支的代碼領(lǐng)先自己的分支,git 如何把master分支代碼合并到自己的分支
1.首先切換到主分支
git checkout master
2.使用git pull 把領(lǐng)先的主分支代碼pull下來
git pull
3.切換到自己的分支
git checkout xxx(自己的分支)
4.把主分支的代碼merge到自己的分支
git merge master
5.git push推上去ok完成,現(xiàn)在 你自己分支的代碼就和主分支的代碼一樣了
git push origin 自己分支名
PS. 開新分支之前要先pull,就是防止別人在此之前往master分支中提交新的代碼,等你提交完push的時(shí)候會發(fā)生沖突。多人合作寫代碼前,一定要先pull,養(yǎng)成一個(gè)好的習(xí)慣。
7、 解決合并的沖突
依次找到?jīng)_突的文件,搜索“>>>>>” 找到current change 和 incoming change ,對比更改的文件,小心確認(rèn)。以免merge丟了代碼。(同事的一次優(yōu)化代碼弄丟代碼上線bug)
8、同一個(gè)倉庫,拉取別人分支的代碼到本地
先切換到master
執(zhí)行 git fetch // 使得本地分支和遠(yuǎn)程所有分支同步
然后同步同事的B分支到我的本地:git fetch origin B
切換到 B :git checkout B
9、更改了遠(yuǎn)程倉庫的地址,本地倉庫實(shí)現(xiàn)關(guān)聯(lián)新地址
git remote // 查看遠(yuǎn)程倉庫
git remote -v //查看遠(yuǎn)程倉庫地址
git remote set-url origin git@XXXX.git // 修改遠(yuǎn)程的地址
10、遷移倉庫(包括代碼、分支、提交記錄)
新倉庫要為空,三步操作git項(xiàng)目遷移。
git clone --bare http://域名/分組/倉庫名稱.git
cd 倉庫名稱.git
git push --mirror http://新域名/新分組/新倉庫名稱.git
11、本地暫存,不想提交到遠(yuǎn)程但是可以本地保存修改記錄
常用git stash命令:
(1)git stash save "save message" : 執(zhí)行存儲時(shí),添加備注,方便查找,只有g(shù)it stash 也要可以的,但查找時(shí)不方便識別。
(2)git stash list :查看stash了哪些存儲
(3)git stash show :顯示做了哪些改動,默認(rèn)show第一個(gè)存儲,如果要顯示其他存貯,后面加stash@{$num},比如第二個(gè) git stash show stash@{1}
(4)git stash show -p : 顯示第一個(gè)存儲的改動,如果想顯示其他存存儲,命令:git stash show stash@{$num} -p ,比如第二個(gè):git stash show stash@{1} -p
(5)git stash apply :應(yīng)用某個(gè)存儲,但不會把存儲從存儲列表中刪除,默認(rèn)使用第一個(gè)存儲,即stash@{0},如果要使用其他個(gè),git stash apply stash@{$num} , 比如第二個(gè):git stash apply stash@{1}
(6)git stash pop :命令恢復(fù)之前緩存的工作目錄,將緩存堆棧中的對應(yīng)stash刪除,并將對應(yīng)修改應(yīng)用到當(dāng)前的工作目錄下,默認(rèn)為第一個(gè)stash,即stash@{0},如果要應(yīng)用并刪除其他stash,命令:git stash pop stash@{$num} ,比如應(yīng)用并刪除第二個(gè):git stash pop stash@{1} (ps,最好不要直接這么用,可能會丟失代碼,如果之后還想用這次的代碼的話。。)
(7)git stash drop stash@{$num} :丟棄stash@{$num}存儲,從列表中刪除這個(gè)存儲
(8)git stash clear :刪除所有緩存的stash