git經常使用命令以及速查命令

工做中使用的是git,因此寫這個只是爲了加深本身的記憶,提升熟練度
共勉~git


git 主要命令

  1. 要關聯一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git;
    關聯後,使用命令git push -u origin master第一次推送master分支的全部內容;
    此後,每次本地提交後,只要有必要,就可使用命令git push origin master推送最新修改;github

  2. 要克隆一個倉庫,首先必須知道倉庫的地址,而後使用git clone命令克隆。
    Git支持多種協議,包括https,但經過ssh支持的原生git協議速度最快。服務器

查看分支:git branchssh

建立分支:git branch fetch

切換分支:git checkout .net

建立+切換分支:git checkout -b 3d

合併某分支到當前分支:git merge 日誌

刪除分支:git branch -d orm

衝突:

用帶參數的git log也能夠看到分支的合併狀況:server

git log --graph --pretty=oneline --abbrev-commit

  • 當Git沒法自動合併分支時,就必須首先解決衝突。解決衝突後,再提交,合併完成。
    用git log --graph命令能夠看到分支合併圖。

  • 準備合併dev分支,請注意--no-ff參數,表示禁用Fast forward:
    git merge --no-ff -m "merge with no-ff" dev

合併分支時,加上--no-ff參數就能夠用普通模式合併,合併後的歷史有分支,能看出來曾經作過合併,而fast forward合併就看不出來曾經作過合併。

修復bug

修復bug時,咱們會經過建立新的bug分支進行修復,而後合併,最後刪除;

當手頭工做沒有完成時,先把工做現場git stash一下,而後去修復bug,修復後,再git stash pop,回到工做現場。

開發一個新feature,最好新建一個分支;

若是要丟棄一個沒有被合併過的分支,能夠經過git branch -D 強行刪除。

多人協做

  1. 查看遠程庫信息,使用git remote -v;

  2. 本地新建的分支若是不推送到遠程,對其餘人就是不可見的;

  3. 從本地推送分支,使用git push origin branch-name,若是推送失敗,先用git pull抓取遠程的新提交;

  4. 在本地建立和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致;

  5. 創建本地分支和遠程分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;

  6. 從遠程抓取分支,使用git pull,若是有衝突,要先處理衝突。

標籤

  1. 命令git tag 用於新建一個標籤,默認爲HEAD,也能夠指定一個commit id;

  2. git tag -a -m "blablabla..."能夠指定標籤信息;

  3. git tag -s -m "blablabla..."能夠用PGP簽名標籤;

  4. 命令git tag能夠查看全部標籤。

操做標籤

  1. 命令git push origin 能夠推送一個本地標籤;

  2. 命令git push origin --tags能夠推送所有未推送過的本地標籤;

  3. 命令git tag -d 能夠刪除一個本地標籤;

  4. 命令git push origin :refs/tags/ 能夠刪除一個遠程標籤。

github

  1. 在GitHub上,能夠任意Fork開源倉庫;

  2. 本身擁有Fork後的倉庫的讀寫權限;

  3. 能夠推送pull request給官方倉庫來貢獻代碼。

簡稱

--global參數是全局參數,也就是這些命令在這臺電腦的全部Git倉庫下都有用

$ git config --global alias.st status
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch

喪心病狂:

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

本身搭建git 服務器

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

速查命令

速查命令來自 http://blog.csdn.net/sunboy_2050/article/details/7529841

git branch 查看本地全部分支
git status 查看當前狀態
git commit 提交
git branch -a 查看全部的分支
git branch -r 查看遠程全部分支
git commit -am "init" 提交而且加註釋
git remote add origin git@192.168.1.119:ndshow
git push origin master 將文件給推到服務器上
git remote show origin 顯示遠程庫origin裏的資源
git push origin master:develop
git push origin master:hb-dev 將本地庫與服務器上的庫進行關聯
git checkout --track origin/dev 切換到遠程dev分支
git branch -D master develop 刪除本地庫develop
git checkout -b dev 創建一個新的本地分支dev
git merge origin/dev 將分支dev與當前分支進行合併
git checkout dev 切換到本地dev分支
git remote show 查看遠程庫
git add .
git rm 文件名(包括路徑) 從git中刪除指定文件
git clone git://github.com/schacon/grit.git 從服務器上將代碼給拉下來
git config --list 看全部用戶
git ls-files 看已經被提交的
git rm [file name] 刪除一個文件
git commit -a 提交當前repos的全部的改變
git add [file name] 添加一個文件到git index
git commit -v 當你用-v參數的時候能夠看commit的差別
git commit -m "This is the message describing the commit" 添加commit信息
git commit -a -a是表明add,把全部的change加到git index裏而後再commit
git commit -a -v 通常提交命令
git log 看你commit的日誌
git diff 查看還沒有暫存的更新
git rm a.a 移除文件(從暫存區和工做區中刪除)
git rm --cached a.a 移除文件(只從暫存區中刪除)
git commit -m "remove" 移除文件(從Git中刪除)
git rm -f a.a 強行移除修改後文件(從暫存區和工做區中刪除)
git diff --cached 或 $ git diff --staged 查看還沒有提交的更新
git stash push 將文件給push到一個臨時空間中
git stash pop 將文件從臨時空間pop下來
---------------------------------------------------------
git remote add origin git@github.com:username/Hello-World.git
git push origin master 將本地項目給提交到服務器中
-----------------------------------------------------------
git pull 本地與服務器端同步
-----------------------------------------------------------------
git push (遠程倉庫名) (分支名) 將本地分支推送到服務器上去。
git push origin serverfix:awesomebranch
------------------------------------------------------------------
git fetch 至關因而從遠程獲取最新版本到本地,不會自動merge
git commit -a -m "log_message" (-a是提交全部改動,-m是加入log信息) 本地修改同步至服務器端 :
git branch branch_0.1 master 從主分支master建立branch_0.1分支
git branch -m branch_0.1 branch_1.0 將branch_0.1重命名爲branch_1.0
git checkout branch_1.0/master 切換到branch_1.0/master分支
du -hs

git branch 刪除遠程branch
git push origin :branch_remote_name
git branch -r -d branch_remote_name


初始化版本庫,並提交到遠程服務器端 mkdir WebApp cd WebApp git init 本地初始化 touch README git add README 添加文件 git commit -m 'first commit' git remote add origin git@github.com:daixu/WebApp.git 增長一個遠程服務器端 上面的命令會增長URL地址爲'git@github.com:daixu/WebApp.git',名稱爲origin的遠程服務器庫,之後提交代碼的時候只須要使用 origin別名便可

相關文章
相關標籤/搜索