簡體   English   中英

愚蠢的GIT GUI問題

[英]Stupid GIT GUI questions

我現在真的很蠢。 我已經使用了許多版本控制應用程序,但使用的不是git。 我已經閱讀了很多文章,但是比以往任何時候都更困惑,因為許多(顯然是正確的)答案使用命令提示符和假設使我比我更了解GIT。

我正在Windows中的一個項目上,有多個人簽入代碼。 我們使用Git Gui,但我也安裝了Git Bash。 到現在為止,我所要做的只是承諾,推動,拉動和合並,生活是美好的。

我希望能夠逐個提交會話回滾我的代碼提交會話,直到我可以返回到經過測試且完全正常工作的模塊的版本為止。 我不知道什么時候代碼被破壞了。

我不想修改主存儲庫,但要修改我的本地版本。 找到更改后,我想復制文件,還原到當前版本,然后將復制的文件中的差異應用到當前版本並檢入。

我嘗試了許多選擇,但似乎沒有一個可以讓我這樣做。 而且我也不想搞亂主存儲庫。

我必須相信這很簡單,只是不確定如何去做。 是的,我可以花幾天時間學習Git的復雜性,但是現在,我必須使代碼正常工作,不要破壞主存儲庫,也不要浪費幾天來弄清楚git./git gui / etc。 (這確實是正確的方法,但是人們現在(再次)需要此代碼。

謝謝!

Crashmstr的評論是最好的選擇: http ://git-scm.com/docs/git-bisect

基本上,您開始使用

$ git bisect start

然后聲明您的“錯誤版本”

$ git bisect bad                 # Current version is bad

然后聲明您的最后一個已知的“好版本”

$ git bisect good v2.6.13-rc2    # v2.6.13-rc2 was the last version
                                 # tested that was good

然后,您可以通過二等分測試每個版本,直到找到中斷提交為止。

如果您對二等分不熟悉,那么基本上就是將空間切成兩半,直到獲得所需的值,例如

[               bad commit in here                       ]
[[        good            ][          bad               ]]
[[        good            ][[   bad      ][    good     ]]

直到獲得所需的實際提交。

一個更簡單的方法是

git log

然后一次簽出每個提交,直到找到損壞的提交為止。

例如

$ git log
commit 63cd158599d77ac73abcefd087a2f7bdfdb171cb
Author: Jordan 
Date:   Fri May 1 02:12:46 2015 -0700

    Start look at query builder

commit d0ca01f7c7c2e7a2153fbe3c980f79022f096aad
Author: Jordan
Date:   Thu Apr 30 23:48:38 2015 -0700

    TODO: add cloudsearch filtering for inactive

然后您可以簽出舊提交,而無需更改任何內容

git checkout 63cd15

直到找到損壞的那個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM