一、從Git回退未Add的文件
$ git checkout 文件名
當我們修改了文件但還未執行git add將其加入暫存區時,可以使用git checkout撤銷修改。這將覆蓋本地工作目錄中的文件並還原為最近的提交狀態。
需要注意,這個命令只能撤銷未add的文件。如果已經執行了git add,需要使用其他的方法撤銷修改。
二、Git add後回退命令
$ git reset HEAD 文件名
如果已經使用git add將文件加入到暫存區,但是又想要撤回這個操作,我們可以使用git reset HEAD命令將暫存區的文件移出。
需要注意,這個命令只是將暫存區的文件移出,本地工作目錄中的文件不會被修改。如果需要撤銷本地工作目錄的修改,需要使用git checkout命令。
三、Git回退add的文件
$ git commit --amend
如果已經執行了git add,並且還未執行git commit,我們可以使用git commit –amend修改最近的提交。這將覆蓋最近的提交並將當前添加到暫存區的文件包含在新的提交中。
需要注意,如果有多個文件被add,只能將它們全部包含在新的提交中,不支持選擇性地撤銷一部分文件。
四、Git add沒有反應
有時我們執行了git add命令,但是發現沒有任何反應。這通常是因為文件名包含了敏感字元,如中文、空格等。
解決方法有兩種:
- 使用git add命令時用引號將文件名包裹起來。
- 將敏感字元替換為下劃線或其他合法字元。
五、Git回退版本
$ git reset [--hard | --soft] 版本號
如果我們想將倉庫中的所有文件都回退到某一個特定的版本號,可以使用git reset命令。
需要注意:
- 如果使用–hard參數,本地工作目錄中的文件也會被修改為回退後的狀態,未提交的修改也會被刪除。
- 如果使用–soft參數,本地工作目錄中的文件不會被修改,但是未提交的修改仍然存在。
六、Git add指定文件
$ git add 文件名
如果只想對某個文件執行git add操作,可以指定文件名。
需要注意,如果執行了git add文件夾名(或者「.」),則會將整個文件夾下的所有文件都加入暫存區。
七、GitLab回退版本
$ git revert 版本號
如果是在使用GitLab這樣的代碼託管服務中工作,可以使用git revert命令來回退版本。
與git reset不同,git revert會創建一個新的提交,將選定版本中修改的內容撤消,並將其作為一個新的提交提交到分支上。這樣可以保留回退的記錄,也可以方便地恢復到之前的狀態。
八、Git add文件夾
$ git add 文件夾名
如果需要將整個文件夾加入暫存區,可以使用git add命令指定文件夾名。
需要注意,如果文件夾下的某些文件不需要加入暫存區,需要在執行該命令之前將這些文件加入.gitignore文件中,否則每次執行git add都會將這些文件也加入暫存區。
九、Git回退commit
$ git reset [--hard | --soft] HEAD~n
如果想要回退多個commit,可以使用git reset [–hard | –soft] HEAD~n命令,其中n表示要回退的提交數。
與回退版本的方法一樣,–hard參數會將本地工作目錄中的文件也修改為回退後的狀態,未提交的修改也會被刪除;–soft參數則不會修改本地工作目錄中的文件,但是未提交的修改仍然存在。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/229229.html