git經常使用命令及操做流程

設置用戶名和郵箱

填寫用戶名和郵箱,git config –global這個參數,表示你這臺機器上全部的Git倉庫都會使用這個配置,固然你也能夠對某個倉庫指定的不一樣的用戶名和郵箱。git

git config  –global user.name 'username'  
 git config  –global user.email '11111@qq.com'

建立版本庫

  • 進入d盤,github

  • 建立repository倉庫app

  • 將倉庫轉爲git倉庫ssh

    cd d:  
      mkdir repository   
      git init

pwd 命令是用於顯示當前的目錄
git init 把這個目錄變成git能夠管理的倉庫學習

添加文件到Git倉庫

git add <file>     可反覆屢次使用,添加多個文件;
git commit

時光機穿梭

git status                               查看工做狀態
git diff                                  查看修改內容。
git diff HEAD -- test.txt       查看指定文件區別

版本回退

git log                                顯示從最近到最遠的提交日誌
git log –-pretty=oneline    查看歷史版本(簡略版)       
cat test1.txt                            查看test1.txt 內容
git reflog                             查看命令歷史,以便肯定要回到將來的哪一個版本。git
git reset  –hard HEAD^                版本回退(那麼若是要回退到上上個版本只需把HEAD^ 改爲 HEAD^^ )
git reset  –hard HEAD~100           回退100個版本
git reset  –hard 版本號                  回退到指定版本號的版本
HEAD指向的版本就是當前版本,所以,Git容許咱們在版本的歷史之間穿梭,使用命令git reset --hard commit_id。

如今,你回退到了某個版本,關掉了電腦,次日早上就後悔了,想恢復到新版本怎麼辦?找不到新版本的commit id怎麼辦? 在Git中,老是有後悔藥能夠吃的。當你用$ git reset --hard HEAD^回退到add distributed版本時,再想恢復到append GPL,就必須找到append GPL的commit id。Git提供了一個命令git reflog用來記錄你的每一次命令:fetch

撤銷修改

git checkout -- test.txt:當你改亂了工做區某個文件的內容,想直接丟棄工做區的修改時使用 
git reset HEAD test.txt  :當你不但改亂了工做區某個文件的內容,還添加到了暫存區時,
想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操做。
版本回退:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠程庫。

刪除

rm test.txt                        刪除工做區的文件
git rm test.txt                   刪除版本庫的文件
git commit -m ''               提交到版本庫
git checkout -- test.txt     撤銷

建立github遠程倉庫

  • ls -al ~/.ssh 命令檢查是否本地用戶主目錄有名爲.ssh的密鑰保存文件夾和密鑰文件。
  • ssh-keygen -t rsa –C 「111@qq.com」 建立SSH Key,一路回車,使用默認值便可,因爲這個Key也不是用於軍事目的,因此也無需設置密碼。
  • 用戶主目錄裏找到.ssh目錄,裏面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的祕鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,能夠放心地告訴任何人。
  • 登錄GitHub,打開「settings --》 SSH Keys」頁面:填上任意Title,在Key文本框裏粘貼id_rsa.pub文件的內容
  • 關聯遠程庫,使用命令 git remote add origin https://github.com/jiangbang/repository.git 遠程庫的名字就是origin,這是Git默認的叫法b
  • 關聯後,使用命令git push -u origin master第一次推送master分支的全部內容,每次本地提交後,只要有必要,就可使用命令git push origin master推送最新修改;須要輸入github用戶名,密碼

建立與合併分支

查看分支:git branch
建立分支:git branch <name>
切換分支:git checkout <name>
建立+切換分支:git checkout -b <name>
    本地建立+切換分支:git checkout -b V1.5 origin/V1.5
合併某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
強行刪除:    git branch -D <name>
查看分支合併圖:git log --graph  <name>

分支現場保存

保存支線    git stash   
 恢復支線    git stash apply
 刪除支線    git stash drop
 恢復並刪除  git stash pop

多人協做

多人協做的工做模式一般是這樣:
1. 首先,能夠試圖用git push origin <branch-name> 推送本身的修改;
2. 若是推送失敗,則由於遠程分支比你的本地更新,須要先用 git pull 試圖合併;
3. 若是合併有衝突,則解決衝突,並在本地提交;
4. 沒有衝突或者解決掉衝突後,再用git push origin <branch-name> 推送就能成功!網站

查看遠程庫信息,使用git remote -v;
本地新建的分支若是不推送到遠程,對其餘人就是不可見的;
從本地推送分支,使用git push origin branch-name,若是推送失敗,先用git pull抓取遠程的新提交;
在本地建立和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致;
創建本地分支和遠程分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;
從遠程抓取分支,使用git pull,若是有衝突,要先處理衝突。

標籤

命令git push origin <tagname>能夠推送一個本地標籤;    
命令git push origin --tags能夠推送所有未推送過的本地標籤; 
命令git tag -d <tagname>能夠刪除一個本地標籤;
命令git push origin :refs/tags/<tagname>能夠刪除一個遠程標籤;

補充

運行 git fetch,能夠將遠程分支信息獲取到本地,再運行 git checkout -b local-branchname origin/remote_branchname   就能夠將遠程分支映射到本地命名爲local-branchname  的一分支。

git相關學習連接

廖雪峯老師的官方網站:http://www.liaoxuefeng.com/
手把手教git: http://blog.jobbole.com/78960/
訓練動手能力的git操做網站:http://pcottle.github.io/learnGitBranching/?demo 日誌

相關文章
相關標籤/搜索