搜尋
首頁開發工具Gitgit實作merge撤銷同時清除merge的本機文件

git教學專欄介紹如何清除merge

git實作merge撤銷同時清除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 加入暂存区
三、撤銷merge

開發者一號面臨的狀況:本地master合併了遠端dev的內容,本地多了一個Suffer.txt的檔案。但是發現合錯了分支,要撤銷剛剛的合併操作。但是本地文件又有改動。

  • 查看目前本機檔案

    ls

    <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/image/270/754/732/1607592020999359.png?x-oss-process=image/resize,p_40" class="lazy" title="1607592020999359.png" alt="git實作merge撤銷同時清除merge的本機文件">

  • #查看工作區和版本庫的差異

    git diff HEAD

git實作merge撤銷同時清除merge的本機文件

    #查看提交歷史
  • git log --oneline --graph

    git實作merge撤銷同時清除merge的本機文件


  • 撤回merge git reset --merge 7f811bf 或執行
    git reset --merge HEAD^

  • HEAD^此例中是7f811bf,上面提交歷史可看到7f811bf是merge前提交的hash字串
  • 查看本機檔案

    ls

    並查看檔案內容git實作merge撤銷同時清除merge的本機文件


  • git實作merge撤銷同時清除merge的本機文件


    • 再次檢視提交記錄git實作merge撤銷同時清除merge的本機文件git log --oneline --graph


  • 查看

  • 工作區和暫存區的差異

    git diff
    工作區和版本庫的差異

    git diff HEAD

暫存區與版本函式庫的差異git實作merge撤銷同時清除merge的本機文件git diff --cached


  • git實作merge撤銷同時清除merge的本機文件
    最終結果:

    本地檔案改動都被重置了(即開發者一號merge後增加的--餘雖好修姱以鞿羈兮, 謇朝諦而夕替,被刪除了),但暫存區還有內容。故工作區merge 後有改動
  • 慎用

驗證法二

  • 撤回merge git reset 7f811bf

再次檢視目前本機檔案git實作merge撤銷同時清除merge的本機文件ls

######################## #######再次查看提交記錄###git log --oneline --graph############################# #####階段結果:###很明顯可以看到,merge已經回滾了,但是本地合併過來的檔案依然還在。也要將多餘合併的文件(Suffer.txt)刪除。 #########在刪除之前可以先看看執行刪除操作會刪除那些內容(###預先刪除###) ###git clean -n########## ############
  • 注意:这里看到本地原来的文件 test.txt 也将被删除,这不是我所期望的。我只希望可以删除 meger 的文件。

  • 将 test.txt 文件加入 .gitignore 再执行预删除

echo test.txt > .gitignore
git add .gitignore
git clean -n

git實作merge撤銷同時清除merge的本機文件

阶段结果:可以看到将会被删除的文件只剩下 merge 的多余文件了。

  • 执行 删除操作 git clean -f
  • 最终结果

以上是git實作merge撤銷同時清除merge的本機文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:简书。如有侵權,請聯絡admin@php.cn刪除
git vs. github:探索他們的角色git vs. github:探索他們的角色Apr 16, 2025 am 12:06 AM

Git和GitHub是不同的工具:Git是一個分佈式版本控制系統,用於管理代碼版本和協作開發;GitHub是一個基於Git的在線平台,提供代碼託管和協作工具。 Git的主要功能包括版本管理、分支管理和協作開發,而GitHub則提供代碼託管、協作工具和社交網絡功能。

GitHub:開源和軟件開發的樞紐GitHub:開源和軟件開發的樞紐Apr 15, 2025 am 12:10 AM

GitHub是一個基於Git的版本控制系統託管平台,提供版本控制、協作開發和社區交流功能。使用GitHub可以提高開發效率和代碼質量。

git and github:有什麼關係?git and github:有什麼關係?Apr 14, 2025 am 12:10 AM

Git和GitHub是不同的工具:Git是用於版本控制的軟件,GitHub是基於Git的在線平台。 1.Git允許你跟踪文件變化和協同開發。 2.GitHub提供代碼託管和協作工具,增強團隊開發效率。

GitHub:開發人員和項目的平台GitHub:開發人員和項目的平台Apr 13, 2025 am 12:01 AM

GitHub的核心功能包括版本控制、分支管理、代碼審查、問題跟踪和項目管理。 1.版本控制與分支管理基於Git,允許追踪代碼變更和實驗性開發。 2.代碼審查通過PullRequest實現,提升代碼質量和團隊協作。 3.問題跟踪與項目管理通過Issues和項目管理板進行,提高項目透明度和可追踪性。

行動中的github:示例和用例行動中的github:示例和用例Apr 12, 2025 am 12:16 AM

GitHub是提升軟件開發效率和質量的強大工具。 1)版本控制:通過Git管理代碼變更。 2)PullRequests:進行代碼審查,提高代碼質量。 3)Issues:跟踪bug和項目進度。 4)GitHubActions:自動化構建、測試和部署流程。

git vs. github:版本控制和代碼託管git vs. github:版本控制和代碼託管Apr 11, 2025 am 11:33 AM

Git是版本控制系統,GitHub是基於Git的代碼託管平台。 Git用於管理代碼版本,支持本地操作;GitHub提供在線協作工具,如Issue跟踪和PullRequest。

什麼是簡單的話?什麼是簡單的話?Apr 09, 2025 am 12:12 AM

Git是一個開源的分佈式版本控制系統,幫助開發者跟踪文件變化、協同工作和管理代碼版本。它的核心功能包括:1)記錄代碼修改,2)回退到之前版本,3)協同開發,4)創建和管理分支進行並行開發。

git和github相同嗎?git和github相同嗎?Apr 08, 2025 am 12:13 AM

Git和GitHub不是同一回事。 Git是版本控制系統,GitHub是基於Git的代碼託管平台。 Git用於管理代碼版本,GitHub提供在線協作環境。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境