git常用命令

開始:

1) 遠程倉庫相關命令

檢出倉庫:$ git clone git://github.com/jquery/jquery.git

查看遠程倉庫:$ git remote -v

添加遠程倉庫:$ git remote add [name] [url]

刪除遠程倉庫:$ git remote rm [name]

修改遠程倉庫:$ git remote set-url --push[name][newUrl]

拉取遠程倉庫:$ git pull [remoteName] [localBranchName]

推送遠程倉庫:$ git push [remoteName] [localBranchName]

2)分支(branch)操作相關命令

查看本地分支:$ git branch

查看遠程分支:$ git branch -r

創建本地分支:$ git branch [name] ----注意新分支創建后不會自動切換為當前分支

切換分支:$ git checkout [name]

創建新分支并立即切換到新分支:$ git checkout -b [name]

刪除分支:$ git branch -d [name] ---- -d選項只能刪除已經參與了合并的分支,對于未有合并的分支是無法刪除的。如果想強制刪除一個分支,可以使用-D選項

合并分支:$ git merge [name] ----將名稱為[name]的分支與當前分支合并

創建遠程分支(本地分支push到遠程):$ git push origin [name]

刪除遠程分支:$ git push origin :heads/[name]

我從master分支創建了一個issue5560分支,做了一些修改后,使用git push origin master提交,但是顯示的結果卻是'Everything up-to-date',發生問題的原因是git push origin master 在沒有track遠程分支的本地分支中默認提交的master分支,因為master分支默認指向了origin master 分支,這里要使用git push origin issue5560:master 就可以把issue5560推送到遠程的master分支了。

如果想把本地的某個分支test提交到遠程倉庫,并作為遠程倉庫的master分支,或者作為另外一個名叫test的分支,那么可以這么做。

git push origin test:master? ? ? ? // 提交本地test分支作為遠程的master分支 //好像只寫這一句,遠程的github就會自動創建一個test分支

git push origin test:test? ? ? ? ? ? ? // 提交本地test分支作為遠程的test分支

如果想刪除遠程的分支呢?類似于上面,如果:左邊的分支為空,那么將刪除:右邊的遠程的分支。

git push origin :test? ? ? ? ? ? ? // 剛提交到遠程的test將被刪除,但是本地還會保存的,不用擔心

3)版本(tag)操作相關命令

查看版本:$ git tag

創建版本:$ git tag [name]

刪除版本:$ git tag -d [name]

查看遠程版本:$ git tag -r

創建遠程版本(本地版本push到遠程):$ git push origin [name]

刪除遠程版本:$ git push origin :refs/tags/[name]

4) 子模塊(submodule)相關操作命令

添加子模塊:$ git submodule add [url] [path]

如:$ git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs

初始化子模塊:$ git submodule init ----只在首次檢出倉庫時運行一次就行

更新子模塊:$ git submodule update ----每次更新或切換分支后都需要運行一下

刪除子模塊:(分4步走哦)

1)$ git rm --cached [path]

2) 編輯“.gitmodules”文件,將子模塊的相關配置節點刪除掉

3) 編輯“.git/config”文件,將子模塊的相關配置節點刪除掉

4) 手動刪除子模塊殘留的目錄

5)忽略一些文件、文件夾不提交

在倉庫根目錄下創建名稱為“.gitignore”的文件,寫入不需要的文件夾名或文件,每個元素占一行即可,如

target

bin

*.db

? ? Git配置

1 git config --global user.name "huaqianlee"?

2 git config --global user.email "huaqianlee@gmail.com"

3 git config --global color.ui true

4 git config --global alias.co checkout # 配置別名,co 配為checkout 別名, 不過我沒用

5 git config --global alias.ci commit

6 git config --global alias.st status

7 git config --global alias.br branch

8 git config --global core.editor "mate -w"? ? # 設置Editor使用textmate

9 git config -l? # 列舉所有配置

? ? 用戶的git配置文件~/.gitconfig

--------------------------------------------------------------------------------------------------------

? ? Git常用及進階命令

--------------------------------------------------------------------------------------------------------

? ? 常用命令

1 git help? #查看幫助,命令忘記了就靠它

2 git init? ? #初始化話目錄為git倉庫

3 git clean -fd? # 刪除無用目錄及文件

4 git clean -fX? # 刪除無用文件

5 git clean # 刪除所有untracked文件

? ? 添加

1 git add file? #添加文件到暫存區

2 git add .? ? ? ? #將所有修改或者新加文件添加到暫存區

3 git add -A? ? # 添加所有文件(除刪除的文件,自動 git rm)

? ? 刪除

1 git rm file? ? ? ? #刪除文件

2 git rm <file> --cached? # 從版本庫中刪除文件,但不刪除文件

? ? 撤銷回退

1 git checkout -- xx? #撤銷xx文件修改

2 git checkout .? ? #撤銷工作區修改

3 git checkout ${commit} /path/to/file #撤銷指定文件到指定版本

4 git revert <$id>? ? # 恢復某次提交的狀態,恢復動作本身也創建了一次提交對象

5 git revert HEAD? ? # 恢復最后一次提交的狀態

6 git reset <file>? ? # 從暫存區恢復某一文件

7 git reset -- .? ? ? # 從暫存區恢復所有文件

8 git reset? –hard HEAD^/HEAD~? #回退到上一版本

9 git reset? –hard <commit_id>? ? #回退到指定版本

10 git reset HEAD file? #取消add文件

? ? 提交

1 git commit? <file> #提交單個文件

2 git commit –m “description”? #提交暫存區到服務器

3 git commit -a? ? ? ? ? # 等同執行git add、 git rm及git commit

4 git commit -am "some comments"

5 git commit --amend? ? ? # 修改最后一次提交記錄

? ? 查看狀態記錄

1 git status? ? ? ? #查看倉庫狀態

2 git show ($id)? # 顯示某次提交的內容

3 git log? (file)? ? ? #查看(文件)提交記錄

4 git log -p <file>? # 查看每次詳細修改內容的diff

5 git log -p -2? ? ? # 查看最近兩次詳細修改內容的diff

6 git log --stat? ? ? # 查看提交統計信息

7 git reflog? ? ? #查看歷史版本號

8 git log -g #同上,用'log'格式輸出

9 git log -- grep "name" # 搜索包含name的log

10 git log record-ID? -l -p #查看指定ID記錄,-l:顯示一行,-p:顯示詳細修改

? ? 查看差異

1 git diff <file>? ? # 比較當前文件和暫存區文件差異

2 git diff? #比較所有文件

3 git diff master..Andylee-Github/master #比較本地和遠端倉庫

4 git diff <$id1> <$id2>? # 比較兩次提交之間的差異

5 git diff <branch1>..<branch2> #比較分支

6 git diff --staged? # 比較暫存區和版本庫差異

7 git diff --cached? # 比較暫存區和版本庫差異

8 git diff --stat? ? # 僅僅比較統計信息

? ? 本地分支管理

1 git branch? #查看本地分支

2 git branch? -r? ? # 查看遠程分支

3 git branch? -a? ? #查看包括遠程文件在內的所有分支

4 git branch? <new_branch> # 創建新分支

5 git branch? -v? ? ? ? ? # 查看各個分支最后提交信息

6 git branch? --merged? ? # 查看已經被合并到當前分支的分支

7 git branch? --no-merged? # 查看尚未被合并到當前分支的分支

8 git checkout <branch>? #切換分支

9 git checkout –b <new_branch>#創建新分支,并切換到新分支

10 git merge dev? ? #在當前的分支上合并dev分支

11 git checkout -b <new_branch> <branch>? # 基于branch創建新的new_branch

12 git checkout? $id? ? ? ? ? # 把某次歷史提交記錄checkout出來,但無分支信息,切換到其他分支會自動刪除

13 git checkout? $id -b <new_branch>? # 把某次歷史提交記錄checkout出來,創建成一個分支

14 git branch-d <branch>? # 刪除分支

15 git branch-D <branch>? # 強制刪除分支 (未被合并的分支被刪除的時需要強制)

16 git merge <branch>? ? ? ? ? ? ? # 將branch分支合并到當前分支

17 git merge origin/master --no-ff? # 不要Fast-Foward合并,這樣可以生成merge提交

18 git rebase master <branch>? ? ? # 將master rebase到branch,等同于:

19 #git checkout? <branch> + git rebase master + git checkout? master + git merge <branch>

? ? 補丁應用

1 git diff > ../sync.patch? ? ? ? # 生成補丁

2 git apply ../sync.patch? ? ? ? ? # 打補丁

3 git apply --check ../sync.patch? # 測試補丁能否成功

? ? 暫存管理

1 git stash? #暫存當前工作,恢復現場后可繼續工作

2 git stash list? #查看暫存文件列表

3 git stash apply? #恢復暫存內容,暫存區不刪除

4 git stash drop? #刪除暫存文件

5 git stash pop? #恢復并刪除文件

? ? 遠程分支管理

1 git pull? ? ? ? ? ? ? ? ? ? ? ? # 抓取遠程倉庫所有分支更新并合并到本地

2 git pull --no-ff? ? ? ? ? ? ? ? # 抓取遠程倉庫所有分支更新并合并到本地,不要快進合并

3 git fetch origin? ? ? ? ? ? ? ? # 抓取遠程倉庫更新,加下一條指令等同于git pull

4 git merge origin/master? ? ? ? ? # 將遠程主分支合并到本地當前分支

5 git checkout? --track origin/branch? ? # 跟蹤某個遠程分支創建相應的本地分支

6 git checkout? -b <local_branch> origin/<remote_branch>? # 基于遠程分支創建本地分支,功能同上

7 git push? ? ? ? ? ? ? ? ? ? ? ? # push所有分支

8 git push origin branch? # 將本地分支推到遠程分支

9 git push –u origin branch? #推送本地分支到遠程倉庫,首次提交需要加-u

10 git push origin <local_branch>? # 創建遠程分支, origin是遠程倉庫名

11 git push origin <local_branch>:<remote_branch>? # 創建遠程分支

12 git push origin :<remote_branch>? #先刪除本地分支(git br -d <branch>),然后再push刪除遠程分支

? ? 遠程倉庫管理

1 git remote? #查看遠程庫的信息

2 git remote –v? #查看遠程庫地址和名稱

3 git remote show origin? ? ? ? ? # 查看遠程服務器倉庫狀態

4 git remote add origin git@github:robbin/robbin_site.git? ? ? ? # 添加遠程倉庫地址

5 git remote set-url origin git@github.com:robbin/robbin_site.git # 設置遠程倉庫地址(用于修改遠程倉庫地址)

6 git remote rm <repository>? ? ? # 刪除遠程倉庫

7 git clone https://github.com/AndyLee-Github/cartboon.git? #從遠程倉庫中克隆

8 git clone --bare robbin_site robbin_site.git? # 用帶版本的項目創建純版本倉庫

9 scp -r my_project.git git@git.csdn.net:~? ? ? # 將純倉庫上傳到服務器上

10 mkdir robbin_site.git + cd robbin_site.git + git --bare init # 在服務器創建純倉庫

11 git remote add origin git@github.com:robbin/robbin_site.git? ? # 設置遠程倉庫地址

12 git push -u origin master? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 客戶端首次提交

13 git push -u origin develop? # 首次將本地develop分支提交到遠程develop分支,并且track

14 git remote set-head origin master? # 設置遠程倉庫的HEAD指向master分支

? ? 命令設置跟蹤遠程庫和本地庫

git branch --set-upstream-to=origin/<branch>?? master

設置本地分支master追蹤origin/<branch>遠程分支

? ? 命令行新建倉庫

1 echo "# hexo-theme" >> README.md

2 git init

3 git add README.md

4git commit -m "first commit"

5 git remote add origin git@github.com:huaqianlee/hexo-theme.git

6 git push -u origin master

? ? 推送一個已存在的倉庫到遠端

1 git remote add origin git@github.com:huaqianlee/hexo-theme.git

2 git push -u origin master

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • git branch 查看本地所有分支 git status 查看當前狀態 git commit 提交 git b...
    猿萬閱讀 5,116評論 1 45
  • 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看當前狀態 git c...
    LOVE_晴天閱讀 2,334評論 0 10
  • 配置 首先是配置帳號信息 ssh -T git@github.com#登陸github 修改項目中的個人信息 1 ...
    rochuan閱讀 767評論 1 1
  • 查看、添加、提交、刪除、找回,重置修改文件 git help # 顯示command的help git sho...
    Swiftor閱讀 2,140評論 0 2
  • 因為自己最近在開發的一個項目針對的用戶群就是以群體作為一個單位的。所以需要好好研究下群體用戶的一些具體特征。 群體...
    壞小朱啦啦閱讀 1,125評論 0 1