layout: post
title: "git遠端操作"
date: 2016-06-02 20:37:22 +0800
comments: true
categories: [git]
很早以前就接觸git了,但是一直是很簡單的應用,只是把專案網上面掛,並沒有用到git的好處。這次想把實習的專案掛到git上去,多方應用。為了便於管理,git要求每個遠端主機都必須指定乙個主機名。
git remote
命令就用於管理主機名。
不帶選項的時候,git remote
命令列出所有遠端主機。
使用-v選項,可以檢視遠端主機的**。
$ git remote -v
origin [email protected]:jquery/jquery.git (fetch)
origin [email protected]:jquery/jquery.git (push)
上面便是,當前有一台遠端主機叫做 origin 以及他的**。
轉殖版本庫的時候,所使用的遠端主機自動被git命名為origin。如果想用其他的主機名,需要用git clone命令的-o選項指定。
$ git clone -o jquery
$ git remote
jquery
上面命令表示,轉殖的時候,指定遠端主機叫做jquery。
git remote add
命令用於新增遠端主機。
$ git remote add 《主機名》 《**》
git remote rm
命令用於刪除遠端主機。
git remote rename
命令用於遠端主機的改名。
$ git remote rename 《原主機名》 《新主機名》
一旦遠端主機的版本庫有了更新(git術語叫做commit),需要將這些更新取回本地,這時就要用到
git fetch
命令。
$ git fetch 《遠端主機名》
//上面命令將某個遠端主機的更新,全部取回本地。
//git fetch命令通常用來檢視其他人的程序,因為它取回的**對你本地的開發**沒有影響。
//預設情況下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名。
$ git fetch 《遠端主機名》 《分支名》
$ git fetch origin master
所取回的更新,在本地主機上要用"遠端主機名/分支名"的形式讀取。比如origin主機的master,就要用origin/master
讀取。
git branch
命令的-r
選項,可以用來檢視遠端分支,-a
選項檢視所有分支。
$ git branch -r
origin/master
$ git branch -a
* master
remotes/origin/master
上面命令表示,本地主機的當前分支是master
,遠端分支是origin/master
。
取回遠端主機的更新以後,可以在它的基礎上,使用
git checkout
命令建立乙個新的分支。
$ git checkout -b newbrach origin/master
上面命令表示,在origin/master
的基礎上,建立乙個新分支。
此外,也可以使用
git merge
命令或者
git rebase
命令,在本地分支上合併遠端分支。
$ git merge origin/master
或者$ git rebase origin/master
上面命令表示在當前分支上,合併origin/master
。
git pull命令的作用是,取回遠端主機某個分支的更新,再與本地的指定分支合併。它的完整格式稍稍有點複雜。
$ git pull 《遠端主機名》 《遠端分支名》:《本地分支名》
比如,取回origin主機的next分支,與本地的master分支合併,需要寫成下面這樣。
$ git pull origin next:master
如果遠端分支是與當前分支合併,則冒號後面的部分可以省略。
上面命令表示,取回origin/next分支,再與當前分支合併。實質上,這等同於先做git fetch,再做git merge。
$ git fetch origin
$ git merge origin/next
如果遠端主機刪除了某個分支,預設情況下,git pull 不會在拉取遠端分支的時候,刪除對應的本地分支。這是為了防止,由於其他人操作了遠端主機,導致git pull不知不覺刪除了本地分支。
但是,你可以改變這個行為,加上引數 -p 就會在本地刪除遠端已經刪除的分支。
$ git pull -p
# 等同於下面的命令
$ git fetch --prune origin
$ git fetch -p
git push命令用於將本地分支的更新,推送到遠端主機。它的格式與git pull命令相仿。
$ git push 《遠端主機名》 《本地分支名》:《遠端分支名》
注意,分支推送順序的寫法是《**地》:《目的地》,所以git pull是《遠端分支》:《本地分支》,而git push是《本地分支》:《遠端分支》。
如果省略遠端分支名,則表示將本地分支推送與之存在"追蹤關係"的遠端分支(通常兩者同名),如果該遠端分支不存在,則會被新建。
** 建立分支**
$ git branch test
切換到分支
$ git checkout test
刪除本地分支
$ git branch -d ***xx
建立分支並切換
$git checkout -b ***
分支的合併
假設有兩個分支 develop 和 master
解決合併衝突
$ git merge issue3
auto-merging myfile.txt
conflict (content): merge conflict in myfile.txt
automatic merge failed; fix conflicts and then commit the result
自動合併失敗。由於在同一行進行了修改,所以產生了衝突。這時myfile.txt的內容如下:
連猴子都懂的git命令
add 把變更錄入到索引中
<<<<<<< head
commit 記錄索引的狀態
*****==
pull 取得遠端資料庫的內容
>>>>>>> issue3
在發生衝突的地方,git生成了內容的差異。請做以下修改
連猴子都懂的git命令
add 把變更錄入到索引中
commit 記錄索引的狀態
pull 取得遠端資料庫的內容
修改衝突的部分,重新提交
$ git add myfile.txt
$ git commit -m "合併issue3分支"
# on branch master
nothing to commit (working directory clean)
git遠端操作
git remote add origin git github.com feicongcong project.git 本地倉庫關聯遠端倉庫 git push u origin master 本地庫的所有內容推送到遠端庫上 分支管理 從dev分支切換到master分支會把dev分支上修改的東西帶過...
Git管理 Git 遠端操作
git使用說明 遠端相關 1,git clone 用於轉殖特定的 庫 git clone 該命令會在本地主機生成乙個目錄 jquery,和遠端主機的版本庫同名。如果指定不同的目錄名,可以將其 目錄名作為git clone命令的第二個引數。git clone myquery 2,git remote ...
git 遠端分支操作
文件 學習筆記,並以gitee.com為例實踐。在gitee.com上建立乙個新倉庫a,勾選建立readme檔案。那麼 倉庫a 建立之後缺省會有乙個名為master的分支。在本地執行 git clone 之後,本地的分支情況如下 建立乙個名為origin的本地倉庫,拉取遠端倉庫a的所有資料及提交。分...