git 基本操作命令

參考學習于廖雪峰的git教程--https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000


git config user.name 使用者name

git config user.email 使用者email

1. git init? 初始化git倉庫

2. git status 查看倉庫當前的狀態(tài)

3. git diff

? ? .暫存區(qū)有文件的時候,查看工作區(qū)和暫存區(qū)的差別

? ? .暫存區(qū)沒有文件的時候,查看工作區(qū)和上次提交到版本庫中的文件的差別

? ? .git diff HEAD --readme.txt 查看版本庫中readme.txt文件和工作區(qū)中的readme.txt文件的區(qū)別

? ? HEAD指向版本庫中的當前版本

4. git add? 文件修改提交到暫存區(qū)

5. git commit 提交更改,即把暫存區(qū)的內(nèi)容提交到當前分支(參數(shù) -m 后面跟備注)

6. git log 查看歷史提交記錄,后面有很多參數(shù)可用,比如 --pretty=oneline(每個提交信息單行顯示)

7. git reset --hard HEAD^ (回退到上一個版本,HEAD^^回退到上上個版本,HEAD~100回退到前100個版本)

? git reset --hard 1e650aa (1e650aa是提交版本的哈希,回到哈希值為1e650aa的版本)

? git reflog? 記錄每次操作的命令,可用獲得各個版本的哈希值

8. git checkout --readme.txt 把工作區(qū)的修改全被撤銷,即,讓這個文件回到最近一次git commit 或者 git add 后 的狀態(tài)

9. git reset HEAD readme.txt 把暫存區(qū)的修改全部撤銷掉,重新放回工作區(qū)

10. 遠程倉庫?

? ? 創(chuàng)建ssh key $ ssh-keygen -t ras -C "youremail@example.com",使用默認值就可以了

? ? 在用戶目錄中找到.ssh目錄 id_rsa.pub是公鑰

? ? 在github中的SSH key中 在文本框里粘貼id_rsa.pub的內(nèi)容

? ? 本地倉庫和github倉庫關聯(lián),本地倉庫運行 $ git remote add origin git@github.com:kevinJser/gitstudy.git (后面的為github上倉庫的ssh地址)

11. git push origin master 提交推送 向遠程倉庫origin推送master分支

12. git clone ......? 克隆

13. git checkout -b dev? 創(chuàng)建分支dev

? ? 相當于兩步操作 git branch dev? ? git checkout dev

14. git branch 查看當前分支

15. git merge dev? 合并指定分支到當前分支 (Fast-forward,快進模式) 也就是直接把master指向dev的當前提交

16. git branch -d dev? 刪除dev分支

17. 合并沖突解決, 本地修改后 git add ...? git commit ... 最后刪除臨時分支

18. 強制禁用Fast forward模式合并(Fast forward模式下,刪除分支后,會丟掉分支信息)

? ? 禁用后,git會在merge時生成一個新的commit,這樣就可以從分支歷史上看到分支信息

19. bug分支,由于git中分支功能的強大,因此,每個bug都是可以通過一個新的臨時分支來修復,修復后合并分支,然后刪除臨時分支

20. git stash 儲存當前的工作,當工作未完成,需要切換到其他分支處理事務的時候,可以先把當前工作內(nèi)容存儲起來

? ? git stash list 查看存貯的工作內(nèi)容。

? ? git stash apply stash@{0}(這個是 git stash list 中查看到的存儲內(nèi)容地址) 恢復工作內(nèi)容,后面需要使用

? ? git stash drop? 來刪除保存的工作內(nèi)容

? ? git stash pop 恢復的同時也把stash內(nèi)容刪除了

21. feature分支(實驗性分支,比如添加新功能的時候?qū)懙囊恍崿F(xiàn)新的代碼),完成后合并刪除

? ? git branch -D feature 強制刪除feature分支,沒有合并過的分支無法普通刪除,只能強制刪除

22. git remote 查看遠程倉庫

? ? git remote -v 詳細信息

23. 當推送失敗的時候,一般是因為和遠程倉庫有了沖突(比如,你的工作伙伴也修改了你推送的那個分支,并且已經(jīng)推送到了遠程倉庫中)

? ? 這時候,需要先pull下來,然后在本地合并,解決沖突.

24. git pull 的時候需要指定本地分支和遠程倉庫分支的鏈接

? ? git branch --set-upstream dev origin/dev,然后再git pull

? ? 然后就是手動解決沖突,然后再push

25. git tag v1.0 為當前分支打上標簽

? ? git tag 查看當前分支的標簽

? ? 要為之前的commit打標簽:

? ? git log --pretty=oneline --abbreve-commit 查看各個commit的哈希號

? ? git tag v0.9 commit號

? ? git tag 展示出來的標簽不是按照時間順序列出,而是按照字母排序

? ? git show v0.9? 查看標簽信息

? ? git tag -a v0.1 -m "version 0.1 released" commit號

? ? git tag -d v0.1 刪除標簽

? ? git push origin

? ? git push origin --tags 推送所有尚未推送到遠程的本地標簽

? ? 刪除遠程標簽:

? ? git tag -d v0.9 先本地刪除

? ? git push origin :refs/tags/v0.9 從遠程刪除

26. 忽略特殊文件

? ? https://github.com/github/gitignore

? ? 忽略原則:

? ? ? ? 1. 忽略操作系統(tǒng)自動生成的文件,比如縮略圖等。

? ? ? ? 2. 忽略編譯生成的中間文件、可執(zhí)行文件等,也就是如果一個文件是通過另外一個文件自動生成的,

? ? ? ? ? 那自動生成的文件就沒必要放進版本庫,比如Java編譯產(chǎn)生的.class文件。

? ? ? ? 3. 忽略你自己的帶有敏感信息的配置文件,比如存放口令的配置文件。

? ? git add -f App.class 強制添加到GIT, 因為gitignore的原因可能一些文件被忽略,這樣可以強制添加。

? ? git check-ignore -v App.class 檢查

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,860評論 9 163
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,843評論 4 54
  • 不斷更新中 基本操作 查看git地址 git remote -v 將一個本地分支推送到服務器遠程倉庫 git...
    字字珠璣閱讀 3,669評論 0 8
  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/。)是一個開源的分布式版本控制系統(tǒng),...
    君惜丶閱讀 3,953評論 0 13
  • 人生,是一塊白布。 在你出生后會變成各種顏色。 可怕的不是被染黑, 而是失去那去那純白的心。 人生也是如此, 當你...
    ea9163d95f23閱讀 219評論 0 2

友情鏈接更多精彩內(nèi)容