日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git stash pop冲突_这有一份 git 日常使用清单,你需要吗?

發(fā)布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git stash pop冲突_这有一份 git 日常使用清单,你需要吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方“前端教程”,選擇“星標”

每天前端開發(fā)干貨第一時間送達!

作者:echozh

juejin.im/post/5d5b4c6951882569eb570958

前置條件:

在正式開始之前,我們需要先確定幾個概念。下面所提到的 master 分支默認為代碼提交的主分支。

本地分支和遠程分支

本地分支是指我們在日常開發(fā)中自己通過?git checkout branch xxx?建立的分支,遠程分支是我們經過?git push -u origin xxxx?推到 git 服務器的分支,在我們推送之后,git 會幫我們在本地建立一個以?orgin/?開頭的分支,這個我們也叫遠程分支。

我們日常操作的就是本地分支 xxx 和遠程分支?origin/xxx,origin/xxx?就是遠程的 git 服務器在我們本地建立的一個分支的對照版本(我覺得這樣說應該比較容易理解),我們日常的?git fetch --all?就是將本地的 origin/xxx 與 git 服務器的 origin/xxx 分支進行同步。

commit id

我們每次提交代碼都會根據本次提交的內容生成一個幾乎唯一的 id ,這個 id 重復的概率幾乎為 0,我們可以這樣理解,我們每次的提交都會生成一個唯一索引的記錄,不管是本地的 git,還是遠程的 git ,我們都將她理解為一個數據庫,只要我們進行了 commit 操作,那么可以幾乎確定,我們的代碼是不會丟失的,我們都可以通過 commit id 找到那條提交記錄的內容。

本篇文章不會講解,分支與分支之間的版本比較等內容,作者比較菜,怕掌握不好度翻車。

使用指南

創(chuàng)建分支

創(chuàng)建分支我們可以使用?git checkout branch xxx?來創(chuàng)建一個新分支,這個很容易理解,但是如果我們現在在分支 branch-1,但是我們想新建一個基于遠程 master 最新版本的分支,我們該怎么辦呢,不能說現在我回到 master,然后?git pull?拉取最新的 master 分支代碼,然后創(chuàng)建分支,很繁瑣對不對。

這里我們就可以進行里一個操作了:git fetch --all?記得我們上面提到的吧,同步遠程分支代碼,?--all?可以改成?origin/master?,然后進行?git checkout branch xxx origin/master?后面的?origin/master?代表我們是基于遠程分支 origin/master 進行創(chuàng)建的。

追加提交記錄

比如我現在已經在本地 commit 一次了,但是發(fā)現還有東西忘改了,如果我在 commit 一次就會生成兩條記錄,這樣從提交記錄上看可能不太好看,然后我們就可以使用?git commit --amend對上一次的提交記錄進行追加。

這個操作的前提是上一次提交必需沒有推送到遠程分支,否則,你會發(fā)現操作之后在進行?git push?會提示你版本不一致不允許提交,當然如果你可以保證提交沒有錯誤,且這一個分支只有你自己一個人玩,那你就可以使用?git push -f?進行強制提交了,這個操作很危險,謹慎使用。

merge 還是 rebase

我比較喜歡 rebase 操作,所以在這里就只會講解 rebase 操作了。rebase 的使用場景。

使用場景 1:

比如現在你在 branch-a 分支工作,但是這個任務有點困難,你已經在這個分支工作很長時間了,很長時間都沒有同步 master 分支的代碼了,然后同組的小伙伴合并了一個新功能這個功能你需要使用,這個時候你就可以在當前分支使用?git rebase origin/master?了,這個操作會將你在這個分支的提交附加于最新的 master 分支版本之后,很明顯這個操作之后你當前本地的 branch-a 和遠程的?origin/branch-a?已經不一樣了,所以有一個缺點就是你只能選擇?git push -f?進行提交。

使用場景 2:

你同組的小伙伴修改了你在 branch-a 分支也修改過的代碼,并且你的小伙伴已經提交了,這個時候,你的 branch-a 分支就會和?origin/master?分支有沖突,嗯,這個時候你也可以使用?git rebase origin/master?這個操作來解決沖突,并同步最新的 master 的代碼。

使用場景 3:

你和小伙伴共同在 branch-a 分支提交代碼,結果小伙伴比你先提交了,這個時候你再提交會發(fā)現版本不一致無法提交,這個時候我們就推薦使用?git pull --rebase,其實?git pull?命令后面是有一個默認參數的那就是 --merge,會給我們剛接觸 git 的同學造成很多麻煩。所以在這?git pull --rebase?是一個不錯的選擇。

rebase 的另外一個騷操作:合并 commit

git rebase -i HEAD~X x?代表從當前的提交記錄往回回溯的提交記錄的個數,執(zhí)行這個操作之后我們就可以看到一個這樣的交互界面:

上面我的 x 是 5,所以在這會有 5 個記錄,接下來我們需要以一個記錄為目標,將其他的記錄全都合并到目標記錄:

我們將其他的 pick 改為 s,s 是指 squash,下面截圖的下面會有相應的解釋,然后我們只需要保存退出即可,接下來會跳出一個?commit message?填寫的界面:

這個界面是讓我為新的提交記錄填寫新的?commit message,這個可自行發(fā)揮,然后還是保存退出即可。然后我們使用?git log?就可以看到一個新的提交記錄:

git cherry-pick

我們可能會有這樣一個使用場景,在分支 branch-a 需要分支 branch-b 的某次提交,這個時候我們就可以先找到 branch-b 的那次提交記錄的 id,然后在 branch-a 分支進行?git cherry-pick b-commit-id?將 branch-b 分支的提交記錄拿過來了

那如果我們只需要 branch-b 分支的某個文件呢該怎么辦呢,莫慌再交你一個操作,git checkout xxx file?這個操作可以將其他分支的文件拉取到當前分支,注意這個操作是覆蓋式的,也就是如果你這個分支的這個文件已將存在,那么這個操作將會覆蓋你當前分支的這個文件。可以發(fā)揮一下 xxx 也可以是遠程分支。

git checkout branch -- file

那么這個操作又是干嘛的呢,這個操作可以將你的某個文件還原到某個分支的版本。如果某次你手誤提交了錯誤的文件,但是改動又忘了,那么這個命令或許可以幫到你。

git prune

根據官方的解釋,直白一點的翻譯就是刪除 git 數據庫中不可訪問的對象,那我的理解是這樣的,git prune?刪除的是你本地 .git 下的 object 目錄下,沒有被使用到的 hash 值,我理解的是它會刪除 origin/xx 開頭的沒有用到的分支,這個分支在你的遠程的 git 服務器中已經刪除但是本地任然存在 origin/xxx 的映射,這個時候你就可以使用?git prune?來刪除本地的 origin/xxx 的映射。

但是官方推薦使用的是 git gc,而想刪除本地的 xxx 分支,就只能只用?git branch -D XXX,在這附上一條我們部門自己寫的一個清除本地無用分支的?shell git fetch --all --prune && git branch -vv | grep gone | awk '{ print $1 }' | grep -v pit | xargs git branch -D。

git stash

git stash?可以幫助我們來暫存一些更改,我推薦的是如果只是少部分的更改,使用 stash 是可以的,多了的話,推薦新建分支來保存更改,以免自己忘記了哪個 stash。那我們該如何取出這些更改呢,最常用的就是?git stash pop?它會將你最新一次的 stash 從一個緩存數組里面推出來,這樣的話如果我們操作不當很可能就丟失了這些更改。

我推薦的是使用?git stash apply,這個會將你最新一次的 stash 從緩存數組里面 copy 一個副本返還給你,缺點就是,你本地的 stash 數組會越來越大,當然,你可以定時清空一下。還有一個場景,如果我想取出指定的 stash 該怎么辦呢,在這我們可以使用 git stash list 來查看一下自己本地的 stash 記錄的形式:

我圈出來的就是每次 stash 的類似于 id 的一個東西,后面會顯示是在什么分支 stash 的,所以現在我們就可以使用?git stash pop/apply stashid?來取出指定的 stash。

后記

目前覺得這些在日常工作中使用的比較多,還有一個 patch 沒說,因為用得比較少,如果再想到其他的內容我會在這篇文章上進行修改。如果本文有錯誤的地方還請大家可以指正,謝謝。

覺得本文對你有幫助?請分享給更多人

關注「前端教程」,一起提升前端技能!

好文章,我在看?? 《新程序員》:云原生和全面數字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的git stash pop冲突_这有一份 git 日常使用清单,你需要吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩精品一区二区在线看 | 日本91在线 | 午夜视频在线网站 | 久久精品亚洲天堂 | 国家队动漫免费观看在线观看晨光 | 久久伊人精品视频 | 精品96久久久久久中文字幕无 | 国产精品一区二区久久国产 | 欧美性生交xxxxx | 日韩精品视频中文字幕 | 少妇一晚三次一区二区三区 | 日本a大片 | 狠狠一区二区 | 岛国av电影在线观看 | 精品久草| 性网站在线观看 | 高清无码一区二区在线观看吞精 | 自拍偷拍色综合 | 色乱码一区二区三区网站 | 亚洲瘦老头同性xxxxx | 伊人www22综合色 | 亚洲播放器| www成人免费视频 | 在线亚洲综合 | 国产成人精品一区二区三区无码熬 | 五月天激情视频在线观看 | 国产成人一区二区三区别 | 美国免费黄色片 | 91精品国产色综合久久不卡粉嫩 | 真人抽搐一进一出视频 | 337p日本欧洲亚洲鲁鲁 | 久草福利网 | 无码一区二区波多野结衣播放搜索 | 久草热视频 | 亚洲深夜福利视频 | 国产日韩一区二区三区 | 国精无码欧精品亚洲一区蜜桃 | 九色porny自拍| 日本精品影院 | 99插插 | 怡红院一区二区三区 | 精品久久99 | 久久久久成人网站 | 欧美一区二区三区国产 | 久草视频在线免费看 | 四虎永久免费在线观看 | 国产69精品久久久久久久 | 中文字幕人乱码中文字 | 海角社区id | 毛片一区 | 国产精品111| 91大神在线观看视频 | 咪咪成人网 | av一二三| 午夜黄色 | 日韩av免费看| 国产91精品露脸国语对白 | 久久九九免费视频 | 蜜桃视频在线观看一区 | 奇米影视四色7777 | 黄色福利在线观看 | 国产午夜大地久久 | 亚洲成人精品视频 | 狠狠操网 | 婷婷社区五月天 | 国产精品秘入口18禁麻豆免会员 | 91av免费 | 国产精品一区二区三区免费视频 | 欧美黄色小说视频 | 亚洲免费影院 | 久久一级电影 | 无码精品一区二区免费 | 妖精视频一区二区三区 | 无码人妻精品一区二区蜜桃网站 | 色永久 | 精品伦精品一区二区三区视频 | 无套暴操 | 免费看黄色aaaaaa 片 | 精品一性一色一乱农村 | 免费黄色片视频 | 欧美人与性动交ccoo | 天堂视频网 | 好吊妞这里有精品 | 男女www视频 | 欧美精品一区二区视频 | 给我看高清的视频在线观看 | 欧美高清 | 一区二区人妻 | 久久精品国产99国产 | 欧美一区二区三区免费看 | 波多野结衣在线视频免费观看 | 蜜臀国产AV天堂久久无码蜜臀 | 日韩美女黄色片 | 黑人玩弄人妻一区二区三区免费看 | 免费人成年激情视频在线观看 | 午夜男人影院 | 日韩高清一二三区 | 欧美三级a| 中文有码视频 |