1. 程式人生 > >在git push前怎樣遺棄掉歷史commit

在git push前怎樣遺棄掉歷史commit

mit 拷貝 easy 下載 性能 water repos 無法 ont

今天寫了一天代碼,然後 git hub commit 了 多達 7 次。 可是都沒有把改動正式推送上去。

結果最後要推送的時候發現中間有一個提交文件超過了100M. 是 vs 的代碼性能分析報告 .vsp 文件, 我僅僅能說真的是碩大無比,一個報告竟然有800M。

那當然我希望把這個文件忽略掉,所以改動 .gitignore 文件。可是已經來不及了,由於之前的 commit 裏面已經有了這個文件。 即使我在新的commit中忽略掉它,之前的commit也無法推送上去。那麽僅僅能不要臉的把全部commit都遺棄掉了。又一次來過。

1. 首先備份下今天的全部改動。

2. 丟掉全部commit:

a. 從master上面copy 下HEAD版本號的SHA

b. git reset --hard SHA

3. 把今天的修改copy回來。 註意僅僅拷貝代碼修改。不要把相關的git文件也拷貝回來,不然git又會說 your branch is ahead of master 7 commits blablabla...

4. 然後又一次提交代碼。

git add -A, git commit -m "你的日誌", git push

最後提個醒。假設有修改不妨直接push上去好,不然到最後累的是自己。今天代碼沒寫幾行。盡搞git了。

悲傷。


假設 重裝 git 後發現本地的 branche 沒法 match server上的 項目,能夠 通過 克隆來恢復。

技術分享技術分享

Add --> Browse 選擇本地項目文件夾下的 .git 文件夾。

點確定就可以。


新建一個 repository, 假設發現有錯誤: fatal: The remote end hung up unexpectedly

那麽有可能是git/https buffer設置的問題,能夠通過下面命令解決: git config http.postBuffer 524288000。

一般是由於要上傳的文件太大,然後是用https協議上傳的,文件大小有限制。導致上傳失敗。所以改下https butter就能夠。

假設是用ssh協議上傳應該就沒有問題。下載的話,https協議也不會有問題。通常源代碼文件不會太大。

新建repo因為全部文件要打包到一起上傳。非常easy超過1M,所以這個問題就easy發生。還有就是假設上傳太多的圖片的時候也會有這個問題。

在git push前怎樣遺棄掉歷史commit