git 常用命令使用,git bash通用命令


git 常用命令

1.強制推送(慎用,除非你認為其他沖突等可以丟棄 或者不是很重要)

git push -- force

 

2.創建文件等小命令

touch a // 創建一個a文件
echo 1234 >> a // 把1234這個內容放入a文件
cat a // 打開a文件 讀取出a文件中的內容
mkdir test // 創建test文件夾
rm 文件名 // 刪除文件
pwd // 打印當前工作路徑

 

3.安裝git的時候 都會安裝git bash和git GUI 我們完全也可以使用git GUI來提交版本 與sourcetree等功能相同

gitk // 用git命令快速打開git GUI

 

4.文件信息

ls // 查看當前路徑下面的所有文件名

ls 文件夾名 // 查看對應文件夾中的內容

ls -l // 拉出最近git提交記錄以及對應修改的文件名

ls -l -a // 拉出最近git提交記錄以及對應修改的文件名,隱藏的文件也會顯示

 

5.cd快速切換路徑

cd ~ // 將工作路徑快速切換到root

cd - // 將工作路徑切換到上一狀態

cd ../ // 切回到上一個工作路徑

cd 文件夾名 // 進入某個目錄

cd / // 進入根目錄

 

6. vim模式

vim 文件名 // 新建一個文件

i 插入內容

按下esc :wq 保存並退出

按下esc :q 直接退出

vim 模式下 文件中#號開頭的為注釋

.project 忽略.project文件

*.obj 或者 *.exe 忽略一類文件 例如以.obj .exe 結尾的文件

git check-ignore -v .project 查看ignore中.project的位置

 

7.常用git 命令

git init // 初始化 在工作路徑上創建主分支

git clone 地址 // 克隆遠程倉庫

git clone -b 分支名 地址 // 克隆分支的代碼到本地

git status // 查看狀態

git add 文件名 // 將某個文件存入暫存區

git add b c //把b和c存入暫存區

git add . // 將所有文件提交到暫存區

git add -p 文件名 // 一個文件分多次提交

git stash -u -k // 提交部分文件內容 到倉庫 例如本地有3個文件 a b c 只想提交a b到遠程倉庫 git add a b 然后 git stash -u -k 再然后git commit -m "備注信息" 然后再push push之后 git stash pop 把之前放入堆棧的c拿出來 繼續下一波操作

git commit -m "提交的備注信息" // 提交到倉庫

若已經有若干文件放入倉庫,再次提交可以不用git add和git commit -m "備注信息" 這2步, 直接用

git commit -am "備注信息" // 將內容放至倉庫 也可用git commit -a -m "備注信息"

* git commit中的備注信息盡量完善 養成良好提交習慣 例如 git commit -m "變更(范圍):變更的內容"

 

8.存儲密碼憑證 設置別名 獲取config信息以及配置

git config --list // 獲取config信息

git config --global core.safecrlf false // 去掉git add 命令后 出現的一堆CR LF提示信息

其中CR是回車的意思 LF是換行

git config --global credential.helper wincred // 存儲憑證 (可用於輸入一次用戶密碼后,不再輸入 有時我們已經用SSH key 綁定關聯好了 但是每次git提交的時候 還是需要你輸入用戶名密碼 在這個時候 敲入這個命令 將憑證存儲起來 用戶名密碼就不需要再次輸入了)

git config --global alias.ci commit // 將commit命令設置別名ci git commit命令將由git ci來代替

 

9.查看git常用命令

git helper -a // 查看全部git子命令

 

10.逐行查看文件的修改歷史

git blame 文件名 // 查看該文件的修改歷史

git blame -L 100,10 文件名 // 從100行開始,到110行 逐行查看文件的修改歷史

 

11.清除

git clean -n // 列出打算清除的檔案(首先會對工作區的內容進行提示)

git clean -f // 真正的刪除

git clean -x -f // 連.gitignore中忽略的檔案也刪除

git status -sb (sb是 short branch) // 簡潔的輸出git status中的信息

 

12.刪除放入暫存區文件的方法(已commit后)

git rm 文件名 // 將該文件從commit后撤回到add后

git reset HEAD^ --hard // 刪除后 可以用git rm 文件名再回撤一步

 

13.查看提交內容

git hi -5 // 查看前5條內容

git hi --grep hello // 過濾提交信息里有hello字眼的內容

 

14.修改文件名以及移動

git mv a b // 把a文件名字改成b 並且直接放入git add后的暫存區

git mv b ./demos/ // 把b文件移動到demos文件夾下

 

15.對比工作區,暫存區,倉庫的差異

git diff // 查看變更 工作區與暫存區的差異比對

git diff --cached // 暫存區與提交版本的差異

git diff HEAD // 工作區與倉庫中最后一次提交版本的差別

git diff 版本哈希值 版本哈希值 // 查看這2個版本哈希之間的區別

或者 git diff HEAD~數字 HEAD~數字

git tag tt HEAD~4 給倒數第5次提交打一個tag tag名字是tt

git diff tt 就是倒數第5個版本與第一個版本之間的差異

git diff --cached tt 暫存區與倒數第5個版本之間的比對

 

16.查看提交信息

git show HEAD // 查看最后一次提交修改的詳細信息 也可以用git show 哈希值 查看對應的內容

git show HEAD^ // 查看倒數第二次的提交修改詳細信息

git show HEAD^^ 或者git show HEAD~2 查看前2次變更

git show HEAD 或 git show 哈希值 或者git show tag(標簽名) 都可以查看最近一次提交的詳細信息

 

17.查看信息

git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short

// 獲取git log里的樹形詳細信息 包括hasg 日期 提交信息 提交人等

git log --oneline //拉出所有提交信息 q是退出

git log -5 // 查看前5次的提交記錄

git log --oneline -5 // 打印出的日志里面只有哈希值和修改的內容備注

git log 文件名 // 查看該文件的提交

git log --grep // 想過濾看到的內容 過濾日志

git log -n // 查看近期提交的n條信息內容

git log -p // 查看詳細提交記錄

 

18.變基操作,改寫歷史提交 把多次提交合並起來

git rebase -i HEAD~3  // 變基之后的哈希值與之前的不同 證明變基是重新做的提交 把多次提交合並成了幾次提交

 

 

19.回撤操作

git commit --amend -m "提交信息" // 回撤上一次提交並與本次工作區一起提交

git reset HEAD~2 --hard // 回撤2步

git reset --files // 從倉庫回撤到暫存區

git reset HEAD // 回撤暫存區內容到工作目錄

git reset HEAD --soft 回撤提交到暫存區

git reset HEAD --hard // 回撤提交 放棄變更 (慎用)

git reset HEAD^ // 回撤倉庫最后一次提交

git reset --hard commitid // 回撤到該次提交id的位置

git push -f -u origin 分支名 所有內容都回撤完了 將回撤后的操作強制推送到遠程分支

 

 

20.標簽操作

git tag // 查看列出所有打過的標簽名

git tag -d 標簽名 // 刪除對應標簽

git tag 標簽名字 // 在當前倉庫打個標簽

git tag foo -m "message" // 在當前提交上,打標簽foo 並給message信息注釋

git tag 標簽名 哈希值 -m "message" // 在某個哈希值上打標簽並且寫上標簽的信息

git tag foo HEAD~4 // 在當前提交之前的第4個版本上 打標簽foo

git push origin --tags // 把所有打好的標簽推送到遠程倉庫

git push origin 標簽名 // 把指定標簽推送到遠程倉庫

git stash // 把暫存區的內容 暫時放在其他中 使暫存區變空

git stash list // 查看stash了哪些存儲

git stash pop // 將stash中的內容恢復到當前目錄,將緩存堆棧中的對應stash刪除

git stash apply // 將stash中的內容恢復到當前目錄,不會將緩存堆棧中的對應stash刪除

git stash clear // 刪除所有緩存的stash

git pull --tags // 把遠程倉庫的標簽也拉取下來

git push origin :refs/tags/遠程標簽名 // 刪除遠程倉庫的標簽

 

 

21.分支

git branch 分支名 // 新建分支

git branch // 查看當前所有分支

git checkout 分支名 // 檢出分支

git checkout -b 分支名 // 創建並切換分支

git branch -v // 查看分支以及提交hash值和commit信息

git merge 分支名 // 把該分支的內容合並到現有分支上

git branch -d 分支名 // 刪除分支

git branch -D 分支名 // 強制刪除 若沒有其他分支合並就刪除 d會提示 D不會

git branch -m 舊分支名 新分支名 // 修改分支名

git branch -M 舊分支名 新分支名 // 修改分支名 M強制修改 若與其他分支有沖突也會創建(慎用)

git branch -r // 列出遠程分支(遠程所有分支名)

git branch -a // 查看遠程分支(列出遠程分支以及本地分支名)

git fetch // 更新remote索引

git push -u origin 分支名 // 將本地分支推送到origin主機,同時指定origin為默認主機,后面就可以不加任何參數使用git push 也可解決 git建立遠程分支關聯時出現fatal ... upstram的問題

 22. 忽略文件

  • ***** : 匹配零個或多個任意字符
  • [abc]:只匹配括號內中的任意一個字符
  • [0-9]:- 代表范圍,匹配0-9之間的任何字符
  • ?:匹配任意一個字符
  • ******:匹配任意的中間目錄,例如a/**/z可以匹配:a/z,a/b/z,a/b/c/z等

 

# 忽略所有以 .c結尾的文件
*.c
 
# 但是 stream.c 會被git追蹤
!stream.c
 
# 只忽略當前文件夾下的TODO文件, 不包括其他文件夾下的TODO例如: subdir/TODO
/TODO
 
# 忽略所有在build文件夾下的文件
build/
 
# 忽略 doc/notes.txt, 但不包括多層下.txt例如: doc/server/arch.txt
doc/*.txt
 
# 忽略所有在doc目錄下的.pdf文件
doc/**/*.pdf

 

 

轉載至create13,僅用作學習參考使用,如有問題請聯系我刪除。


免責聲明!

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



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