Git使用

目錄

1.安裝工具

2.設(shè)置機(jī)器標(biāo)識(shí)

3.本地倉(cāng)庫(kù)操作

4.遠(yuǎn)程倉(cāng)庫(kù)操作

5.參考


安裝工具

  • linux下安裝git
sudo apt-get install git
  • windows下使用git
    建議安裝git-bash工具使用

設(shè)置機(jī)器標(biāo)識(shí)

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

目的是讓遠(yuǎn)程倉(cāng)庫(kù)識(shí)別身份,Your Name是讓倉(cāng)庫(kù)識(shí)別你的名字,在代碼提交歷史中就會(huì)以這個(gè)名字顯示你的記錄。

(回到頂部)


本地倉(cāng)庫(kù)操作

1.創(chuàng)建本地倉(cāng)庫(kù)

在指定目錄下創(chuàng)建一個(gè)文件夾,并將文件夾變成版本倉(cāng)庫(kù)

mkdir firstMode  //創(chuàng)建文件
cd firstMode  //進(jìn)入文件
git init   //初始化為本地倉(cāng)庫(kù)

2.提交文件到倉(cāng)庫(kù)

  • 1.在firstMode文件中創(chuàng)建README.md文件(類似工程中添加了代碼或者文件)

  • 2.將文件添加到倉(cāng)庫(kù)

git add README.md
  • 3.提交文件到倉(cāng)庫(kù)
git commit -m "message"    //message標(biāo)識(shí)提交的日志
git commit --amend //可以對(duì)上一次的提交做修改

3.查看版本區(qū)別

  • 查看版本情況
git status
  • 對(duì)比當(dāng)前修改和倉(cāng)庫(kù)版本的不同(這里的倉(cāng)庫(kù)指本地倉(cāng)庫(kù))
git diff filename

4.版本后退

  • 查看版本日志
git log
  • 回滾到上個(gè)版本
git reset --hard HRAD^
git reset --hard 版本號(hào)
  • 查看歷史命令
git reflog
  • 通過查看歷史命令獲取版本號(hào)
git rm filename
git checkout -- filename
git reset HEAD filename
  • 版本回退后,強(qiáng)制推送到遠(yuǎn)程分支
git push -f

5.分支管理

  • 查看分支

    git branch    //查看本地倉(cāng)庫(kù)的分支
    git branch -a   //查看遠(yuǎn)程倉(cāng)庫(kù)的分支
    
  • 創(chuàng)建分支并切換到該分支

    git checkout -b dev
    
  • 創(chuàng)建分支

    git branch dev
    
  • 切換到該分支

    git checkout dev
    
  • 刪除該分支

    git branch -d dev
    
  • 合并某分支到當(dāng)前分支

    git merge dev
    
  • 刪除遠(yuǎn)程分支

    git push origin --delete dev
    
  • 本地分支和遠(yuǎn)程分支建立關(guān)聯(lián)

    git branch --set-upstream v1.9.0 origin/v1.9.0
    
  • 更新遠(yuǎn)程信息到本地

    git fetch -v
    

(回到頂部)


遠(yuǎn)程倉(cāng)庫(kù)操作

1.綁定sshkey

  • 1.創(chuàng)建本地的密鑰

    因?yàn)間it-bash本身集成了ssh,所以我們可以方便的直接使用ssh的相關(guān)命令。

    ssh-keygen -t rsa  //創(chuàng)建ssh密鑰
    

    根據(jù)提示輸入:
    存儲(chǔ)文件密鑰的位置(直接回車鍵,創(chuàng)建在默認(rèn)的目錄下)
    輸入密碼
    再次輸入密碼(如果設(shè)置了密碼,每次提交代碼需要輸入這個(gè)密碼,所以不建議設(shè)置密碼)

  • 2.將公鑰添加到github

    點(diǎn)擊右端小頭像-->settings-->SSH keys
    打開公鑰將公鑰復(fù)制到github上。

    vim ~/.ssh/id_rsa.pub
    
  • 3.使用中可能遇到的問題

    • (1)找不到ssh私

      通過ssh-add ~/.ssh/id_rsa命令,添加私鑰。

    • (2)無(wú)法執(zhí)行添加私鑰

      在添加私鑰時(shí),經(jīng)常會(huì)出現(xiàn):

      ould not open a connection to your authentication agent.
      

      可以通過執(zhí)行這個(gè)命令解決:

      ssh-agent bash
      

2.修改遠(yuǎn)程服務(wù)器鏈接等問題

  • 添加遠(yuǎn)程服務(wù)器連接
    git remote add origin url
    
  • 修改遠(yuǎn)程服務(wù)器鏈接
    git remote set-url origin url
    
  • 查看遠(yuǎn)程倉(cāng)庫(kù)地址
    git remote -v
    

3.從遠(yuǎn)程倉(cāng)庫(kù)中拉取到本地

  • 1.通過clone

    在安裝好git,并在遠(yuǎn)程倉(cāng)庫(kù)中綁定ssh之后,在指定目錄中執(zhí)行:

    git clone url 
    

    就能將遠(yuǎn)程倉(cāng)庫(kù)的master分支拉去到本地,并且本地倉(cāng)庫(kù)處于master分支;

  • 2.通過pull

    在綁定了ssh、初始化本地倉(cāng)庫(kù)、添加遠(yuǎn)程服務(wù)連接之后,這個(gè)時(shí)候本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)已經(jīng)形成了關(guān)聯(lián)。也就說在完成上面的幾個(gè)步驟,本地倉(cāng)庫(kù)已經(jīng)處于master分支。但是,這個(gè)時(shí)候沒辦法查看遠(yuǎn)程的分支情況,原因是本地創(chuàng)建的倉(cāng)庫(kù)的.git信息和遠(yuǎn)程倉(cāng)庫(kù)不同步,可以通過拉去遠(yuǎn)程信息到本地:

    git fetch
    

    這個(gè)步驟是將遠(yuǎn)程的信息拉去到本地,放到.git文件中。

    通過pull 命令就可以拉去遠(yuǎn)程倉(cāng)庫(kù)的master分支的代碼了

    git pull origin master
    

    如果要拉去其他分支的代碼,只需要切換到分支,并拉取:

    git checkout -b dev  //切換分支
    git pull origin tinker_dev   //拉取
    

4.提交到遠(yuǎn)程倉(cāng)庫(kù)

在將代碼提交到本地倉(cāng)庫(kù)之后,這個(gè)時(shí)候可以通過下面的命令,將本地的代碼同步到遠(yuǎn)程倉(cāng)庫(kù)中:

git push origin dev

dev是當(dāng)前分支,提交代碼也是對(duì)應(yīng)到遠(yuǎn)程倉(cāng)庫(kù)的分支中。如果遠(yuǎn)程倉(cāng)庫(kù)中沒有該分支,會(huì)提醒是否繼續(xù)提交,如果提交成功則遠(yuǎn)程倉(cāng)庫(kù)中也有了該分支。

5.標(biāo)簽管理

  • 給當(dāng)前commit打標(biāo)簽
git tag tagname
  • 給指定的commit打標(biāo)簽
git tag tagname commitnum
  • 創(chuàng)建帶有說明的標(biāo)簽
git tag -a tagname -m "version 0.1 released" commitnum
  • 查詢標(biāo)簽
git tag
  • 查詢標(biāo)簽修改內(nèi)容
git show tagname
  • 刪除標(biāo)簽
git tag -d tagname
  • 在本地打上標(biāo)簽,只會(huì)在本地,如果想要推送某個(gè)標(biāo)簽到遠(yuǎn)程
git push origin v1.0
  • 一次性推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽
git push origin --tags
  • 刪除遠(yuǎn)程的標(biāo)簽,先刪除本地標(biāo)簽,然后在執(zhí)行以下代碼
git push origin :refs/tags/tagname

(回到頂部)


<a id="label">跳到這里來</a>

參考

參考網(wǎng)址:
http://fooklook.com/blog/toolnote
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 聲明:這篇文章來源于廖雪峰老師的官方網(wǎng)站,我僅僅是作為學(xué)習(xí)之用 Git簡(jiǎn)介 Git是什么? Git是目前世界上最先...
    橫渡閱讀 3,987評(píng)論 3 27
  • 本文作者陳云峰,轉(zhuǎn)載請(qǐng)注明。 這篇文章記錄個(gè)人常用的一些命令,和記不住的一些命令,轉(zhuǎn)載了并不斷更新。 Git官網(wǎng) ...
    陳云峰閱讀 2,847評(píng)論 0 24
  • 延伸——獻(xiàn)給一位恩師/徐宏 延伸——獻(xiàn)給一位恩師 徐 宏 這位恩師是我小學(xué)的班主任,語(yǔ)文老師丁光彩,他...
    sunxuhong閱讀 533評(píng)論 6 5
  • 這該死的上半年沒完沒了日夜顛倒 環(huán)境影響自己活的云里霧里傻兮兮 別人怎么樣關(guān)你啥事就只知道操心 沒有關(guān)系的人事別再...
    亂馬閱讀 210評(píng)論 1 7
  • 每一個(gè)想改變自己的人都會(huì)經(jīng)歷一個(gè)“孤獨(dú)”的歷程,不僅難以找到可以一起努力的小伙伴,而且還要面對(duì)他人的“冷嘲熱諷”,...
    江筱南閱讀 394評(píng)論 0 0