git學習小結(筆記),git學習小結筆記

來源:互聯網
上載者:User

git學習小結(筆記),git學習小結筆記

註:本文參考 廖雪峰的Git教程 ,非常感謝廖大神的無私奉獻,本文僅作為筆者的學習筆記,如果需要完整的學習git,請猛戳前面的連結^_^

一、git是什嗎?
   1、git是什嗎?
        "git是世界上最先進的分布式版本控制系統(沒有之一)"  --廖雪峰
   2、為什麼要學習git?
        git是一種高效且方便的版本控制工具,在實際開發中可以大大提高工作效率哦 ^_^ ~~

二、安裝git

1 sudo apt-get install git

 

三、建立版本庫

1 [mkdir <庫名>]2 [cd <庫名>]3 git init     #將目前的目錄初始化為一個git倉庫

 

四、版本控制
   1、將檔案添加到版本庫

1 git add <filename>          #把檔案添加到暫存區,注意該檔案必須放在倉庫目錄(或子目錄)下2 git commit -m "提交說明"     #把暫存區的內容提交到當前分支

   2、查看工作區的狀態

1 git status                   #查看工作區的修改記錄2 git diff <filename>          #如果git status提示有修改記錄,那麼這條命令可以查看修改內容

   3、版本切換

1 #HEAD指向目前的版本2 git reset --hard commit_id   #回退到commit_id指定的版本3 git log [--pretty=oneline]   #查看從最近到最遠的提交日誌,加上"[]"內的參數可以以"版本號碼 提交日誌"的格式查看4 git reflog   #查看命令曆史

   4、撤消修改

1 git checkout -- <file>       #撤消工作區的修改2 git reset HEAD <file>        #撤消暫存區的修改,返回工作區修改的狀態

   5、刪除檔案

1 git checkout -- <file>       #用版本庫裡的版本替換工作區的版本2 git rm <file>                #刪除暫存區裡的檔案

 

五、遠程倉庫
   1、建立SSH Key:

1 #進入使用者主目錄下的.ssh目錄(沒有則自己建立):2 ssh-keygen -t rsa -C "email@example.com"     #建立SSH Key,注意填寫正確的郵箱地址3 #登陸GitHub,開啟"Account settings","SSH Keys"頁面,然後"Add SSH Key",填寫"Title",將id_rsa.pub的內容拷貝到Key文字框,"Add Key"

   2、添加遠程庫

1 #登陸GitHub,"Create a new repo"建立一個新倉庫2 git remote add origin git@server-name:path/repo-name.git        #將本地倉庫關聯到遠程庫3 git push [-u] origin master     #推送最新修改,第一次推送時要加上-u參數

   3、從遠程庫複製

1 git clone git@server-name.com:path/name.git     #複製一個遠程庫到目前的目錄

 

六、分支管理
   1、建立與合并分支
         分支的作用是什麼:當開發項目中的某一個任務的時候,可以使用新的分支完成,之後合并到master分支再刪除新分支,這樣做可以比較安全的管理項目,因為在某分支上的操作只會修改該分支包含的內容,比較安全

1 git branch <name>       #建立分支2 git checkout <name>     #切換分支3 git checkout -b <name>  #建立並切換4 git merge <name>        #合并分支到當前分支5 git branch -d <name>    #刪除分支6 git log --graph         #查看分支合并圖

   2、分支管理原則
        Fast forward模式:該模式是分支合并時的預設模式,在這種模式下,刪除分支後,會丟失分支資訊,在實際開發中不推薦使用該模式。

1 git merge --no-ff -m "XXX" b-name       # "--no-ff" 參數表示禁用Fast forward模式

        分支管理的基本原則:
                ①master分支僅僅用來發布新的版本;
                ②團隊成員都在dev分支上工作,每個人都在dev分支的一個子分支上工作;

   3、bug分支

1 git stash       #儲存當前的"工作現場"2 git stash apply #恢複現場但不刪除stash的內容3 git stash drop  #刪除stash的內容4 git stash pop   #恢複現場並刪除stash的內容5 git stash list  #查看stash的內容

        bug修複策略:建立一個新分支修複bug,然後合并,刪除
        步驟:儲存當前"工作現場"-->建立並切換到bug分支-->修複bug-->切換到bug分支的上層分支-->合并並刪除bug分支-->切換回原來的工作分支-->恢複"工作現場"。
   4、feature分支
        新增功能的策略:建立新分支,然後合并刪除

1 git branch -D <name>    #強行刪除一個沒有被合并的分支

   5、多人協作

1 git remote -v   #查看遠程庫資訊2 git pull        #抓取最新的提交到本地倉庫3 git push origin branch-name                     #將本地分支推送到遠程倉庫4 git checkout -b branch-name origin/branch-name  #在本地建立和遠程分支對應的分支5 git branch --set-upstream branch-name origin/branch-name        #建立本地分支和遠程分支的關聯

        多人協作的工作模式:
                ①試圖用  git push origin branch-name  推送自己的修改;
                ②如果推送失敗,則因為遠程分支比本地分支更新,需要先用 git pull 抓取到本地然後試圖合并
                ③如果合并有衝突,則先解決衝突,並在本地提交;
                ④沒有衝突或者解決掉衝突後,用  git push origin branch-name  推送

七、標籤管理
   1、建立標籤

1 git tag                 #查看所有標籤2 git show <tagname>      #查看標籤的詳細資料3 git tag <tagname> [commit id]   #建立一個標籤,預設為HEAD,也可以指定一個commit id4 git tag -a <tagname> -m "xxx"   #指定標籤資訊為 "xxx"5 git tag -s <tagname> -m "xxx"   #用PGP簽名標籤

   2、操作標籤

1 git tag -d <tagname>    #刪除一個本地標籤2 git push origin --tags  #推送全部未推送過的本地標籤3 git push origin <tagname>       #推送一個本地標籤4 git push origin :refs/tags/<tagname>    #刪除一個遠程標籤

 

八、使用GitHub
   在GitHub上,可以任意Fork開源倉庫,並且自己擁有Fork後的倉庫的讀寫權限,可以推送 pull request 給官方倉庫來貢獻代碼

九、自訂Git
   1、忽略特殊檔案
        ①忽略某些檔案時,需要編寫 .gitignore ,並在檔案中加上要忽略的檔案名稱;
        ② .gitignore 檔案本身要放到版本庫裡,並且可以對 .gitignore 做版本管理;
   2、配置別名
        ① git config [--global] alias.new-name old-name #將 new-name 作為 old-name 的別名,加上--global表示對目前使用者修改,不加則僅僅對當前倉庫修改; 
        ②除了使用  config 參數外,還可以通過修改設定檔來配置別名:每個倉庫的設定檔放在 .git/config 中,目前使用者的設定檔則放在Home目錄下的 .gitconfig 中;
   3、搭建Git伺服器
        ①安裝git:  sudo apt-get install git 
        ②建立git使用者: sudo adduser git 
        ③建立認證登入:收集所有需要登陸的使用者公開金鑰,即 id_rsa.pub ,把所有公開金鑰匯入到 /home/git/.ssh/authorized_keys 檔案中,一行一個;
        ④初始化Git倉庫:先選定一個目錄作為Git倉庫,假設是 /srv/sample.git ,在 /srv 目錄下輸入: sudo git init --bare sample.git ,並修改倉庫的所有者為git: sudo chown -R git:git sample.git 
        ⑤禁用shell登入:將檔案 /etc/passwd 中類似這樣的一行: git:x:1001:1001:...:/home/git:/bin/bash 修改為 git:x:1001:1001:.../home/git:/usr/bin/git-shell;
        ⑥複製遠程倉庫: git clone git@server:/srv/sample.git 

總結:git包含了很多的參數和用法,但是經常用到的不多,以後多加練習應該就可以熟練使用了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.