初始Git常用相關(guān)命令

初始Git常用相關(guān)命令

下載Git
國內(nèi)鏡像
“Git”->“Git Bash”,蹦出一個類似命令行窗口的東西,就說明Git安裝成功!

安裝完成后,還需要最后一步設(shè)置,在命令行輸入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com" 
  1. 創(chuàng)建一個版本庫非常簡單,首先,選擇一個合適的地方,創(chuàng)建一個空目錄

    $ mkdir learngit
    $ cd learngit
    $ pwd //pwd命令用于顯示當(dāng)前目錄

  2. git init //把這個目錄變成Git可以管理的倉庫(當(dāng)前目錄下多了一個.git的目錄,默認是隱藏)

  3. 假設(shè)我們現(xiàn)在有一個readme.txt(一定要放在git倉庫目錄下learngit)文件并有相應(yīng)的內(nèi)容

  • git add 用命令 告訴Git,把文件添加到倉庫 eg:git add readme.txt
  • git commit用命令告訴Git,把文件提交到倉庫:eg:git commit -m "wrote a readme file"(-m后面輸入的是本次提交的說明,可以輸入任意內(nèi)容,當(dāng)然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄。)
  1. git status命令看看結(jié)果
  2. git diff這個命令看看修改的結(jié)果 eg:git diff readme.txt
  3. git log命令查看修改的歷史紀錄,如果嫌輸出信息太多,看得眼花繚亂的,可以試試加上--pretty=oneline 參數(shù)。eg:git log --pretty=oneline,在這里你看到的一大串類似3628164...882e1e0的是commit id(版本號)
  4. git reset命令回退版本,上一個版本就是HEAD,上上一個版本就是HEAD,當(dāng)然往上100個版本寫100個。eg:git reset --hard HEAD^
  • $ git reset --hard 3628164指定回到未來的某個版本3628164這個是不全的commit ID。會自己幫我們找
  1. git reflog用來記錄你的每一次命令
  2. git checkout -- file可以丟棄工作區(qū)的修改(工作區(qū)指還未add前,add之后,commit之前叫暫存區(qū))。eg:git checkout -- readme.txt
  • . 一種是readme.txt自修改后還沒有被放到暫存區(qū),現(xiàn)在,撤銷修改就回到和版本庫一模一樣的狀態(tài);

  • 一種是readme.txt已經(jīng)添加到暫存區(qū)后,又作了修改,現(xiàn)在,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)。

  1. 撤銷修改git reset HEAD file可以把暫存區(qū)的修改撤銷掉(unstage),重新放回工作區(qū):eg:git reset HEAD readme.txt
  2. 刪除文件 rm test.txt
    這個時候,Git知道你刪除了文件,因此,工作區(qū)和版本庫就不一致了,git status命令會立刻告訴你哪些文件被刪除了:(git checkout其實是用版本庫里的版本替換工作區(qū)的版本,無論工作區(qū)是修改還是刪除,都可以“一鍵還原”)
  • 現(xiàn)在你有兩個選擇,一是確實要從版本庫中刪除該文件,那就用命令git rm刪掉,并且git commit.eg:git rm test.txt 然后 git commit -m "remove test.txt"文件就從版本庫中被刪除了
  • 另一種情況是刪錯了,因為版本庫里還有呢,所以可以很輕松地把誤刪的文件恢復(fù)到最新版本git checkout -- test.txt

  1. 創(chuàng)建SSH Keyssh-keygen -t rsa -C "youremail@example.com"然后一路回車,可以在用戶主目錄里找到.ssh目錄,里面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,
  2. 在GitHub上新建這個learngit倉庫。git remote add origin git@github.com:HappyXiaoTian/learngit.git添加后,遠程庫的名字就是origin
  3. git push命令,把本地庫的內(nèi)容推送到遠程,實際上是把當(dāng)前分支master推送到遠程.eg:git push -u origin master
  4. git push origin master只要本地作了提交,就可以通過以上命令
  5. 從遠程庫克隆登陸GitHub,創(chuàng)建一個新的倉庫,名字叫g(shù)itskills。git clone克隆一個本地庫eg:git clone git@github.com:HappyXiaoTian/gitskills.git

分支

  1. git checkout -b dev我們創(chuàng)建dev分支,然后切換到dev分支。相當(dāng)于如下兩行命令:
    • $ git branch dev
    • $ git checkout dev
  1. git branch命令查看當(dāng)前分支
  2. git merge命令用于合并指定分支到當(dāng)前分支eg:git merge dev(假設(shè)當(dāng)前分支是master,就是將dev分支合并到master分支)
  3. git branch -d dev刪除dev分支
  4. git merge --no-ff -m "merge with no-ff" dev準備合并dev分支,請注意--no-ff參數(shù),表示禁用Fast forward
  5. git stash把當(dāng)前工作現(xiàn)場“儲藏”起來,等以后恢復(fù)現(xiàn)場后繼續(xù)工作
  6. git stash list命令看看剛才的工作現(xiàn)場存到哪去了
  7. Git把stash內(nèi)容存在某個地方了,但是需要恢復(fù)一下,有兩個辦法:
  • 一是用git stash apply恢復(fù),但是恢復(fù)后,stash內(nèi)容并不刪除,你需要用git stash drop來刪除;

  • 另一種方式是用git stash pop,恢復(fù)的同時把stash內(nèi)容也刪了:

  1. git branch -d feature-vulcanfeature-vulcan分支還是必須就地銷毀git branch -D feature-vulcan強行刪除
  2. git push origin master推送master分支

標簽

  1. git tag <name>就可以打一個新標簽eg:git tag v1.0
  2. git tag查看所有標簽
  3. git log --pretty=oneline --abbrev-commit找到歷史提交的commit id
  4. git tag v0.9 6224937對指定commit id是6224937打上標簽
  5. git tag -a v0.1 -m "version 0.1 released" 3628164創(chuàng)建帶有說明的標簽,用-a指定標簽名,-m指定說明文字
  6. git show <tagname>可以看到說明文字eg:git show v0.1
  7. git tag -s v0.2 -m "signed version 0.2 released" fec145a簽名采用PGP簽名,因此,必須首先安裝gpg(GnuPG),如果沒有找到gpg,或者沒有g(shù)pg密鑰對,就會報錯
  8. git tag -d v0.1標簽打錯了,刪除
  9. git push origin <tagname>推送某個標簽到遠程eg:git push origin v1.0。git push origin --tags一次性推送全部尚未推送到遠程的本地標簽
  10. git push origin :refs/tags/<tagname>可以刪除一個遠程標簽(先刪除本地的:git tag -d v0.9) eg:git push origin :refs/tags/v0.9
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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