git命令備查

git安裝初始化

  • 用戶名:git config --global user.name "Your Name"
  • 電子郵件:git config --global user.email "email@example.com"

本地庫操作

  • 創(chuàng)建目錄文件夾:mkdir learngit
  • 更改到創(chuàng)建的目錄文件夾:cd learngit
  • 顯示目錄文件:pwd
  • 把目錄變成Git可以管理的倉庫:git init
  • 顯示隱藏的文件夾:ls -ah
  • 把文件添加到倉庫:git add readme.txt
  • 把文件提交到倉庫:git commit -m "wrote a readme file"
    ** -m 后面輸入的是本次提交的說明,可以輸入任意內(nèi)容,當(dāng)然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄。**
    ** 為什么Git添加文件需要add,commit一共兩步呢?因?yàn)閏ommit可以一次提交很多文件,所以你可以多次add不同的文件。 **
  • 時刻掌握倉庫當(dāng)前的狀態(tài):git status
  • 看看具體修改了什么內(nèi)容:git diff
  • 查看歷史記錄:git log
    ** 如果嫌輸出信息太多,看得眼花繚亂的,可以試試加上--pretty=oneline參數(shù) **
  • 回退到上一個版本:git reset
    ** 在Git中,用HEAD表示當(dāng)前版本,上一個版本就是HEAD,上上一個版本就是HEAD,當(dāng)然往上100個版本寫100個比較容易數(shù)不過來,所以寫成HEAD~100。 **
  • 查看文件內(nèi)容:cat readme.txt
  • 指定回退到某個版本:git reset --hard 3628164
  • 記錄你的每一次命令:git reflog
    ** 找不到新版本的commit id怎么辦?在Git中,總是有后悔藥可以吃的。當(dāng)你用git eset --hard HEAD^回退到add distributed版本時,再想恢復(fù)到append GPL,就必須找到ppend GPL的commit id。Git提供了一個命令git reflog用來記錄你的每一次命令 **
    *** HEAD指向的版本就是當(dāng)前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id。穿梭前,用git log可以查看提交歷史,以便確定要回退到哪個版本。要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本。***
  • 丟棄工作區(qū)的修改:git checkout -- file # file是要丟棄修改的文件
  • 把暫存區(qū)的修改撤銷掉:git reset HEAD file # file是要撤銷修改的文件
    *** 場景1:當(dāng)你改亂了工作區(qū)某個文件的內(nèi)容,想直接丟棄工作區(qū)的修改時,用命令git checkout -- file。
    場景2:當(dāng)你不但改亂了工作區(qū)某個文件的內(nèi)容,還添加到了暫存區(qū)時,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操作。
    場景3:已經(jīng)提交了不合適的修改到版本庫時,想要撤銷本次提交,參考[版本回退]一節(jié),不過前提是沒有推送到遠(yuǎn)程庫。***
  • 刪除文件:rm test.txt
  • 從版本庫中刪除該文件:用命令git rm test.txt刪掉,并且git commit -m " ..."
  • 把誤刪的文件恢復(fù)到最新版本:git checkout -- test.txt

遠(yuǎn)程庫操作

  • 創(chuàng)建SSH Key:ssh-keygen -t rsa -C "youremail@example.com"
  • 添加遠(yuǎn)程庫:git remote add origin git@github.com:michaelliao/learngit.git ** #照抄github上的提示**
  • 推送到遠(yuǎn)程庫:git push -u origin master
    *** 把本地庫的內(nèi)容推送到遠(yuǎn)程,用git push命令,實(shí)際上是把當(dāng)前分支master推送到遠(yuǎn)程。由于遠(yuǎn)程庫是空的,我們第一次推送master分支時,加上了-u參數(shù),Git不但會把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來,在以后的推送或者拉取時就可以簡化命令。此后,用git push origin master推送修改***
  • 克隆遠(yuǎn)程庫:git clone https://github.com/pipi636/work.gitorgit clone git@github.com:pipi636/work.git

分支

  • 創(chuàng)建dev分支:git branch dev
  • 切換到dev分支:git checkout dev
  • 創(chuàng)建并合并到dev分支:git checkout -b dev
  • 查看當(dāng)前分支:git branch
  • 把dev分支的工作成果合并到master分支上:git merge dev
  • 刪除dev分支:git branch -d dev
  • 當(dāng)Git無法自動合并分支時,就必須首先解決沖突。解決沖突后,再提交,合并完成。用git log --graph命令可以看到分支合并圖。

未完待續(xù)


感謝廖雪峰老師的git教程,通俗易懂。

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

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

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