git 常用命令


git 常用命令

git基本概念

img

工作區:倉庫的目錄。工作區是獨立於各個分支的。
暫存區:數據暫時存放的區域,類似於工作區寫入版本庫前的緩存區。暫存區是獨立於各個分支的。
版本庫:存放所有已經提交到本地倉庫的代碼版本
版本結構樹結構,樹中每個節點代表一個代碼版本。

工作區- >暫存區- >版本庫

HEAD指針

安裝

  1. 安裝時:use git from git bash only,其他默認下一步
    配置path:git的bin目錄

  2. 配置git:用戶名和郵箱

    • git config --global user.name "用戶名"
    • git config --global user.email "郵箱"
      查看用戶名和郵箱:C:\Users\用戶名\.gitconfig
  3. 搭建git服務器:統一托管網站(https://github.com/)

  4. 本地和遠程倉庫之間免秘鑰通信:配置ssh,先在本地配置,再發送給遠程

    • 本地生成ssh: ssh-keygen或者ssh-keygen -t rsa -C 郵箱 一路回車
    • 發送給遠程:github -settings -ssh -new ssh -title任意 key中輸入本地生成的ssh:將id_rsa.pub文件中的內容復制到遠程的key中
  5. 測試連通性:ssh -T git@github.com

    • 如果本地和遠程成功通信,則可以在 /.ssh目錄中發現一個known_hosts文件
    • 如果失敗:可能是網站不穩定,多試幾次
  6. .git目錄:git版本控制的目錄

git常用命令

  1. git remote set-url --add origin xxx: 添加另外一個遠程庫

  2. git config --global user.name xxx:設置全局用戶名,信息記錄在~/.gitconfig文件中

  3. git config --global user.email xxx@xxx.com:設置全局郵箱地址,信息記錄在~/.gitconfig文件中

  4. git init:將當前目錄配置成git倉庫,信息記錄在隱藏的.git文件夾中

  5. git add XX:將XX文件添加到暫存區

  6. git add .:將所有待加入暫存區的文件加入暫存區

  7. git rm --cached XX:將文件從倉庫索引目錄中刪掉,git不去管理

  8. git restore --stage XX: 將文件從緩存區拿出來

  9. git commit -m "給自己看的備注信息":將暫存區的內容提交到當前分支

  10. git status:查看倉庫狀態

  11. git diff XX:查看XX文件相對於暫存區修改了哪些內容

  12. git log:查看當前分支的所有版本

  13. git log --pretty=oneline: 顯示在一行

  14. git reflog:查看HEAD指針的移動歷史(包括被回滾的版本)

  15. git reset --hard HEAD^ git reset --hard HEAD~:將代碼庫回滾到上一個版本

    • git reset --hard HEAD^^:往上回滾兩次,以此類推

    • git reset --hard HEAD~100:往上回滾100個版本

    • git reset --hard 版本號:回滾到某一特定版本

  16. git restore XX :將文件XX從工作區的修改恢復到暫存區,如果暫存區沒有內容,就是頭節點指向的版本,可以恢復刪除文件

  17. git checkout — XX或git restore XX:將XX文件尚未加入暫存區的修改全部撤銷

  18. git remote add origin git@git.acwing.com:xxx/XXX.git:將本地倉庫關聯到遠程倉庫

  19. git push -u (第一次需要-u以后不需要):將當前分支推送到遠程倉庫

  20. git push -f :強制覆蓋提交

  21. git push origin branch_name:將本地的某個分支推送到遠程倉庫

  22. git remote rm origin :移除本地關聯

  23. git clone git@git.acwing.com:xxx/XXX.git:將遠程倉庫XXX下載到當前目錄下

  24. git checkout -b branch_name:創建並切換到branch_name這個分支

  25. git branch:查看所有分支和當前所處分支

  26. git checkout branch_name:切換到branch_name這個分支

  27. git merge branch_name:將分支branch_name合並到當前分支上

  28. git branch -d branch_name:刪除本地倉庫的branch_name分支

  29. git branch branch_name:創建新分支

  30. git push --set-upstream origin branch_name:設置本地的branch_name分支對應遠程倉庫的branch_name分支

  31. git push -d origin branch_name:刪除遠程倉庫的branch_name分支

  32. git pull:將遠程倉庫的當前分支與本地倉庫的當前分支合並

  33. git pull origin branch_name:將遠程倉庫的branch_name分支與本地倉庫的當前分支合並

  34. git branch --set-upstream-to=origin/branch_name1 branch_name2:將遠程的branch_name1分支與本地的branch_name2分支對應

  35. git checkout -t origin/branch_name:將遠程的branch_name分支拉取到本地

  36. git stash:將工作區和暫存區中尚未提交的修改存入棧中

  37. git stash apply:將棧頂存儲的修改恢復到當前分支,但不刪除棧頂元素

  38. git stash drop:刪除棧頂存儲的修改

  39. git stash pop:將棧頂存儲的修改恢復到當前分支,同時刪除棧頂元素

  40. git stash list:查看棧中所有元素

git刪除中間某個commit

  1. git log獲取commit信息
  2. git rebase -i (commit-id)
    commit-id 為要刪除的commit的下一個commit號
  3. 執行命令后,進入編輯文件,將要刪除的commit之前的單詞改為drop

2021-09-21_094307.png

  1. 保存文件退出大功告成
  2. git log查看

盡量不要刪除節點,直接回滾就行了,因為回滾前的版本我們以后可以通過git reflog找到。


免責聲明!

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



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