修改一下readme.txt檔案
echo git is a powerful version control system > readme.txt #新增powerful
git status #檢視git倉庫當前的狀態
上面的輸出表示readme.txt被修改了但是還沒有提交
git diff readme.txt #檢視更改資訊
再次提交這個檔案還是兩步:
已經沒有需要提交的修改了
git log #檢視提交(commit)的歷史記錄
第二次提交顯示在了最前面
git log還可以加引數 --pretty=oneline可以簡化顯示
這個是commit的id,用sha1計算出來的乙個非常大的數字,用十六進製制表示。因為git是分布式的,可能多人在乙個版本庫工作,所以不能用1 2 3 4 5……這樣的數字。
在git中head表示當前版本,是最新的提交。上乙個版本是head^,head^^,head^^^…依次類推。如果太多了,可以用數字表示,向前100個版本就是head~100。
git reset --hard head^ #退回到上乙個版本。
回退後再檢視,readme.txt已經回到上乙個版本了。現在只剩這個版本了。
但是執行了這個命令,有後悔了咋辦。如果視窗還沒有關掉,向上找到上乙個版本的commit_id。
然後執行git reset 命令
git reset --hard e39612d #前幾位就可以了
readme.txt又回到了second submission 版本了。
這實際上是一種指標操作。
head 最先指向了second submission ,然後回退版本後,又指向了first submission。然後會把工作區的檔案更新了。所以head指向哪個版本號, 當前版本就定為在哪。
如果確實回退到了,first submission,並且關了視窗,不能從視窗拿到commit_id的時候。
可以使用 git reflog 命令。
git回退版本
把檔案從暫存區域或歷史記錄中複製到工作目錄,用來丟棄本地修改。git reset files 用來撤銷最後一次git add files,你也可以用git reset 撤銷所有暫存區域檔案。git reset option commitid 用來撤銷歷史記錄,option選項 soft,hard,m...
git回退版本
有些時候我們提交的遠端 最新的 也許還不如上次寫的好,於是我們就想回退到以前的版本。那麼怎麼回退呢 對了,回退之前還是先備份下。1 2 3 git log 檢視提交的歷史 git log pretty oneline 如果嫌上面的輸出資訊過多可以使用這條 只輸出版本號 git reset hard ...
git 回退版本
git commit amend 提交後的一次補救,比如忘記在上一次提交時提交某些檔案,需要做一些修改後再提交。這個命令就像本次提交覆蓋了上一次提交,在倉庫歷史中不會顯示上一次提交 git reset head 將檔案從暫存區移到工作區,把暫存區的修改回退到工作區 git checkout 檔名 回...