git實作merge撤銷同時清除merge的本機文件
git教學專欄介紹如何清除merge
#推薦:git教學
一、開門見山
解決方法
法一:git reset --merge merge前的任何一次提交的hash字串
註1:
- 如果工作區在merge之後沒有任何改動,大膽的用此方法。
- 如果工作區在merge之後有了改動,那麼此方法會重置工作區的一切修改,慎用。但會保留暫存區的改動。
註2:當MERGE_HEAD 在目前的提交上的時候(就是當合併分支時遇到錯誤或衝突,分支旁邊會多出「|MERGING」這個東西)git merge --abort
與此方法一樣
法二:
git reset merge前的任何一次提交的hash串 git clean -n #预删除 #将预删除不想删除的文件加入.gitignore git add .gitignore git clean -f
二、建構環境
##約定:遠端倉庫URL使用remote url 取代
1、類比開發者一號
mkdir gitTest #新增文件夹gitTest cd gitTest git init git remote add origin "remote url" echo "长太息以掩涕兮, 哀民生之多艰。" > lyrics.txt #新建 lyrics.txt 并在里面写入文字 git add lyrics.txt #将 lyrics.txt加入暂存区 git commit -m "lyrics.txt from user 1" git push origin master git checkout -b dev git push origin dev:dev
2、類比開發者二號
mkdir gitTest2 cd gitTest2 git clone "remote url" cd gitTest echo "Don't make me suffer" > Suffer.txt git add Suffer.txt git commit -m "Suffer.txt from user2" git push origin dev
3、模擬開發者一號
git checkout master git merge origin/dev #合并远程dev分支 echo "余虽好修姱以鞿羁兮, 謇朝谇而夕替。" >> lyrics.txt #修改文件 lyrics.txt echo "余虽好修姱以鞿羁兮, 謇朝谇而夕替。" > test.txt #新建test并写入内容 git add test.txt #将 test.txt 加入暂存区
開發者一號面臨的狀況:本地master合併了遠端dev的內容,本地多了一個Suffer.txt的檔案。但是發現合錯了分支,要撤銷剛剛的合併操作。但是本地文件又有改動。
- 查看目前本機檔案
ls
<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/image/270/754/732/1607592020999359.png" class="lazy" title="1607592020999359.png" alt="git實作merge撤銷同時清除merge的本機文件">
- #查看工作區和版本庫的差異
git diff HEAD
- #查看提交歷史
- git log --oneline --graph
撤回merge
git reset --merge 7f811bf
或執行
git reset --merge HEAD^ HEAD^此例中是7f811bf,上面提交歷史可看到7f811bf是merge前提交的hash字串-
ls查看本機檔案
並查看檔案內容
-
-
-
再次檢視提交記錄
git log --oneline --graph
查看
- 工作區和暫存區的差異
git diff
git diff HEAD
工作區和版本庫的差異
暫存區與版本函式庫的差異git diff --cached
-
本地檔案改動都被重置了(即開發者一號merge後增加的--餘雖好修姱以鞿羈兮, 謇朝諦而夕替,被刪除了),但暫存區還有內容。故工作區merge 後有改動
最終結果: 慎用
驗證法二
-
撤回merge git reset 7f811bf
再次檢視目前本機檔案ls
注意:这里看到本地原来的文件 test.txt 也将被删除,这不是我所期望的。我只希望可以删除 meger 的文件。
将 test.txt 文件加入 .gitignore 再执行预删除
echo test.txt > .gitignore git add .gitignore git clean -n
阶段结果:可以看到将会被删除的文件只剩下 merge 的多余文件了。
- 执行 删除操作
git clean -f
- 最终结果
以上是git實作merge撤銷同時清除merge的本機文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

要通過 Git 下載項目到本地,請按以下步驟操作:安裝 Git。導航到項目目錄。使用以下命令克隆遠程存儲庫:git clone https://github.com/username/repository-name.git

更新 git 代碼的步驟:檢出代碼:git clone https://github.com/username/repo.git獲取最新更改:git fetch合併更改:git merge origin/master推送更改(可選):git push origin master

在開發一個電商網站時,我遇到了一個棘手的問題:如何在大量商品數據中實現高效的搜索功能?傳統的數據庫搜索效率低下,用戶體驗不佳。經過一番研究,我發現了Typesense這個搜索引擎,並通過其官方PHP客戶端typesense/typesense-php解決了這個問題,大大提升了搜索性能。

Git Commit 是一種命令,將文件變更記錄到 Git 存儲庫中,以保存項目當前狀態的快照。使用方法如下:添加變更到暫存區域編寫簡潔且信息豐富的提交消息保存並退出提交消息以完成提交可選:為提交添加簽名使用 git log 查看提交內容

解決 Git 下載速度慢時可採取以下步驟:檢查網絡連接,嘗試切換連接方式。優化 Git 配置:增加 POST 緩衝區大小(git config --global http.postBuffer 524288000)、降低低速限制(git config --global http.lowSpeedLimit 1000)。使用 Git 代理(如 git-proxy 或 git-lfs-proxy)。嘗試使用不同的 Git 客戶端(如 Sourcetree 或 Github Desktop)。檢查防火

Git 代碼合併過程:拉取最新更改以避免衝突。切換到要合併的分支。發起合併,指定要合併的分支。解決合併衝突(如有)。暫存和提交合併,提供提交消息。

如何更新本地 Git 代碼?用 git fetch 從遠程倉庫拉取最新更改。用 git merge origin/<遠程分支名稱> 將遠程變更合併到本地分支。解決因合併產生的衝突。用 git commit -m "Merge branch <遠程分支名稱>" 提交合併更改,應用更新。

要刪除 Git 倉庫,請執行以下步驟:確認要刪除的倉庫。本地刪除倉庫:使用 rm -rf 命令刪除其文件夾。遠程刪除倉庫:導航到倉庫設置,找到“刪除倉庫”選項,確認操作。
