git 常用命令


0.原理

工作區直接跟暫緩區打交道,暫緩區跟版本庫打交道

  • 從工作區中添加內容到暫緩區
  • 將暫緩區的內容提交到版本庫
  • 從版本庫中檢出內容到工作區

 

1. 忽略本地指定文件、目錄

在git下載到本地的目錄中修改.git/info/exclude文件

例如git status時忽略所有的.pyc文件

#忽略以.pyc結尾的文件 
*.pyc
#忽略dbg文件&目錄
dbg
#只忽略dbg目錄
dbg/ #只忽略dbg文件
dbg
!dbg/

2. 撤銷對文件的修改

場景:當文件修改了,但沒有add,還原最后一次提交的內容

git checkout --filename

注:使用之前需要確認確實要放棄之前的修改,否則會使內容徹底丟失。

3. 取消暫存(add)的文件

場景:文件add了,但是突然想取消add操作,此時可用reset命令

git reset HEAD filename

4. 添加緩存(add)

git add file      :將文件添加緩存區
git add -u :將文件的修改、文件的刪除,添加到暫存區。 git add . :將文件的修改,文件的新建,添加到暫存區。 git add -A :將文件的修改,文件的刪除,文件的新建,添加到暫存區。

5. amend 補充提交

場景:當commit 完了以后突然意識到還有文件沒有提交,這時不需要再add+commit,可以amend到上次commit中

git add filename
git commit --amend

 

執行完commit后,想撤回commit,怎么辦?

git reset --soft HEAD^

6. 回退

先使用git log 查看 commit日志,找到需要回退的那次commit的 哈希值commit_id

git reset --hard <commit_id>
git push origin HEAD --force

7. git reset --hard 回滾以后 以后怎么再回去

 git log -g

8. git 還原某個特定的文件到之前的版本

以src/test.py為例

1. git log src/test/py 得到改文件的commit歷史
2. 得到要回退版本的hash,如d98a0f565804ba639ba46d6e4295d4f787ff2949
3. checkout對應的版本,git checkout  d98a0f565804ba639ba46d6e4295d4f787ff2949 src/test.py
4. commit checkout下來的版本,git commit -m 'revert to previous version'

9. git報錯:Please move or remove them before you can switch branches.

error: Your local changes to the following files would be overwritten by checkout:
.
.
.省略中間部分
.
Please move or remove them before you can switch branches.

出現這個錯誤時:可以通過以下的命令處理:

git clean  -d  -fx ""

注: 
1. x :表示刪除忽略文件已經對Git來說不識別的文件 
2. d: 刪除未被添加到git的路徑中的文件 
3. f: 強制執行

10. 還原指定的文件

如果想拿遠端Git服務器的最新版本(或指定版本)覆蓋本地修改,可以用git pull,但這樣會全面更新本地代碼庫

如果只想放棄本地工作所作修改(尚未add),可以用

git checkout file/to/path

如果想從遠端庫獲取最新的更新,應先更新本地庫,再跟新的本地

git fetch
git checkout origin/master file/to/path

11. 切換賬號

$ git config --global user.name "jihite"
$ git config --global user.email xtcmhs@gmail.com

如果用了 –global 選項,那么更改的配置文件就是位於你用戶主目錄下的那個,以后你所有的項目都會默認使用這里配置的用戶信息。

如果要在某個特定的項目中使用其他名字或者電郵,只要去掉 –global 選項重新配置即可,新的設定保存在當前項目的 .git/config 文件里。 

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM