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 加入暂存区三、撤銷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 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中文網其他相關文章!

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

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

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

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

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

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

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

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

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

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

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

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境