日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git reflog and checkout

發(fā)布時間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git reflog and checkout 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

用錯checkout 了比如想checkout出下面的一個版本,結(jié)果用錯了

git checkout ?8bfd9b1d292 這樣會導(dǎo)致HEAD? deatched ,在這個地方修改后commit??

commit 8bfd9b1d2922b55586f41d37f1a2a992d580e1dd Author: lab <lab@dera.com.cn> Date:?? Tue Dec 8 20:21:42 2015 +0800

??? update main.c

當(dāng)git checkout master? 時 剛的8bfd9b1d292 分支就丟了。

?

可以用下面方法找回

git reflog

c65ec9a HEAD@{0}: checkout: moving from 68657499e57fdcd970f9207ac2cb0f656d3bd5b6 to master
8bfd9b1d292 HEAD@{1}: checkout: moving from master to

?

git reset --hard 8bfd9b1d292 后可以將恢復(fù)

?

?

恢復(fù) git reset -hard 的誤操作?

轉(zhuǎn)帖:http://hi.baidu.com/configuration/item/97fddeea252818d0eb34c964

有時候使用Git工作得小心翼翼,特別是涉及到一些高級操作,例如?reset,?rebase?和?merge。甚至一些很小的操作,例如刪除一個分支,我都擔(dān)心數(shù)據(jù)丟失。
不 久之前,我在做一些大動作(rebasing)之前,我總是備份整個版本庫,以防萬一。直到最近我才發(fā)現(xiàn)git的歷史記錄是不可修改的,也就是說你不能更 改任何已經(jīng)發(fā)生的事情。你做的任何操作都只是在原來的操作上修改。也就是說,即使你刪除了一個分支,修改了一個提交,或者強制重置,你仍然可以回滾這些操 作。
讓我們來看一些例子:
$?git?init $?touch?foo.txt $?git?add?foo.txt $?git?commit?-m?"initial?commit"
$?echo?'new?data'?>>?foo.txt $?git?commit?-a?-m?"more?stuff?added?to?foo"
你現(xiàn)在看git的歷史記錄,你可以看到兩次提交: $?git?log *?98abc5a?(HEAD,?master)?more?stuff?added?to?foo *?b7057a9?initial?commit
現(xiàn)在讓我們來重置回第一次提交的狀態(tài): $?git?reset?--hard?b7057a9 $?git?log *?b7057a9?(HEAD,?master)?initial?commit
這看起來我們是丟掉了我們第二次的提交,沒有辦法找回來了。但是?reflog?就是用來解決這個問題的。簡單的說,它會記錄所有HEAD的歷史,也就是說當(dāng)你做?reset,checkout等操作的時候,這些操作會被記錄在reflog中。
$?git?reflog b7057a9?HEAD@{0}:?reset:?moving?to?b7057a9 98abc5a?HEAD@{1}:?commit:?more?stuff?added?to?foo b7057a9?HEAD@{2}:?commit?(initial):?initial?commit
所以,我們要找回我們第二commit,只需要做如下操作: $?git?reset?--hard?98abc5a
再來看一下?git?記錄: $?git?log *?98abc5a?(HEAD,?master)?more?stuff?added?to?foo *?b7057a9?initial?commit
所以,如果你因為reset等操作丟失一個提交的時候,你總是可以把它找回來。除非你的操作已經(jīng)被git當(dāng)做垃圾處理掉了,一般是30天以后。

?How to checkout only one file from git repository?? http://stackoverflow.com/questions/2466735/how-to-checkout-only-one-file-from-git-repository/2467629#2467629

轉(zhuǎn)載于:https://www.cnblogs.com/fastwave2004/p/5046382.html

總結(jié)

以上是生活随笔為你收集整理的git reflog and checkout的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。