在工做中常用的git命令筆記

基礎

初始化版本庫git

git init   github

將修改添加到暫存區 app

git add <file>   ssh

將暫存區提交到版本庫分支 fetch

git commit -m "message"  spa

跳過暫存區直接提交工做區的修改開發

git commit -a -m '修改內容說明'   rem

查看工做區的狀態 同步

git status   it

查看工做區修改內容,即工做區與暫存區的區別

git diff <file>   

恢復到指定id的版本

git reset --hard <commitid>   

查看提交歷史

git log   

查看格式化後的提交歷史

git log --pretty=oneline    

查看將來的歷史命令

git reflog   

查看工做區和版本庫裏面最新版本的區別

git diff HEAD -- readme.txt   

用版本庫裏<file>的版本替換工做區<file>的版本

git checkout -- <file>   

一種是<file>自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態;

一種是<file>已經添加到暫存區後,又做了修改,撤銷修改就回到添加到暫存區後的狀態。

能夠把暫存區的修改撤銷掉,不修改工做區

git reset HEAD <file>   
從版本庫中刪除文件

git rm <file>   

遠程倉庫

建立SSH Key

ssh-keygen -t rsa -C "youremail@example.com"

與遠程倉庫創建關聯

git remote add origin git@github.com/liuyuantao1990/git-test.git

把本地庫的全部內容推送到遠程庫

git push -u origin master
第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在之後的推送或者拉取時就能夠簡化命令

以HTTPS協議形式從遠程庫克隆內容的到本地庫

git clone https://github.com/liuyuantao1990/git-test.git  

以SSH協議形式從遠程庫克隆內容的到本地庫

git clone git@github.com:liuyuantao1990/git-test.git  

從遠程倉庫抓取數據

git fetch <remote-name>  

查看遠程倉庫信息

git remote show <remote-name>  

遠程倉庫重命名

git remote rename <old-name> <new-name>  

分支管理

master分支是主分支,所以要時刻與遠程同步; 

dev分支是開發分支,團隊全部成員都須要在上面工做,因此也須要與遠程同步; 

bug分支只用於在本地修復bug,就不必推到遠程了,除非老闆要看看你每週到底修復了幾個bug; 

feature分支是否推到遠程,取決於你是否和你的小夥伴合做在上面開發。

建立並切換<name>分支

git checkout -b <name>   

查看分支

git branch   

建立<name>分支

git branch <name>   

切換到<name>分支

git checkout <name>   

合併指定分支到當前分支

git merge <name>   

刪除<name>分支

git branch -d <name>   

查看分支的合併狀況

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

查看分支合併圖

git log --graph   

採用普通模式合併制定分支到當前分支

git merge --no-ff -m "普通模式合併分支" <name>   

本地分支管理

保存工做區的內容,之後恢復工做區後能夠繼續工做

git stash   

恢復保存的工做區,可是恢復後,stash內容並不刪除

git stash apply   

刪除保存的工做區的內容

git stash drop   

恢復保存的工做區,同時刪除stash內容

git stash pop  

強行刪除分支

git branch -D <name>   

遠程分支管理

查看遠程庫的信息

git remote   

查看遠程庫的詳細信息

git remote -v   

將master分支推送到遠程庫對應的遠程分支

git push origin master   

從遠程抓取分支

git pull   

創建本地<branch-name>分支和遠程<branch-name>分支的關聯

git branch --set-upstream <branch-name> origin/<branch-name>  

標籤操做

新建標籤

git tag v1.0   

根據提交的id建立帶說明的標籤

git tag -a v0.1 -m "version 0.1 released" commit id   

查看全部標籤

git tag   

查看<tagname>標籤信息

git show <tagname>   

推送一個本地標籤到遠程

git push origin <tagname>   

推送所有未推送過的本地標籤到遠程

git push origin --tags   

刪除標籤

git tag -d v0.1   

刪除遠程標籤

git push origin :refs/tags/v0.1   

文件恢復

從暫存區恢復文件到工做區

當執行 "git checkout ." 或者 "git checkout -- <file>" 命令時,會用暫存區所有或指定的文件替換工做區的文件。

從版本庫恢復文件到工做區和暫存區

當執行 "git checkout HEAD ." 或者 "git checkout HEAD <file>" 命令時,會用 HEAD 指向的 master 分支中的所有或者部分文件替換暫存區以及工做區中的文件。 

從版本庫恢復提交到暫存區

git reset --soft <commitid>

從版本庫恢復提交到暫存區和工做區,等同於git checkout HEAD .

git reset --hard <commitid>

相關文章
相關標籤/搜索