git--本地分支與遠程分支

  • 本地建立一個空文件夾,然後git clone 遠程地址,可以拉取遠程master的所有項目至本地
  • git branch 用來查看分支信息,git branch -a查看所有分支(包括遠程remote)
$ git branch
  * master

$ git branch -a
  * master
  remotes/origin/HEAD -> origin/master
  remotes/origin/Isaac
  remotes/origin/align
  remotes/origin/color_transfer
  remotes/origin/dev_Br20190103
  remotes/origin/dev_yx

*表示當前所在的分支,remotes表示遠程分支
另外,還可以通過 git status查看當前所有分支

$ git status
On branch size_expand
nothing to commit, working tree clean

一、git創建本地分支

$ git checkout -b 本地分支名   

表示創建本地分支並切換到新建分支,等價於以下兩行:

1.創建本地分支:git branch 本地分支名
2.切換到新建的分支:git checkout 本地分支名

使用git branch看到已經切換到新建的本地分支了:

$ git branch
  master
* size_expand

若發現git branch之後內容爲空,則需要將需要git的文件內容添加至倉庫

$git add *

二、將本地分支關聯到遠程分支

$ git push origin 本地分支名:遠程分支名

注: push之後纔可以pull
如果直接用$ git push origin 本地分支名,則默認和遠程分支同名
這個時候,遠程的分支已建立了。

三、刪除分支

刪除本地分支:
$git branch -d 本地分支名

刪除新建的遠程分支`在這裏插入代碼片`
$ git branch -r -d origin/遠程分支名
或者
$ git push origin :遠程分支名

第二種push爲空,相當於刪除該分支

四、合併分支

checkout 切換到master, 然後將所需的分支併入。注意:切換過程中,暫緩區或工作目錄存在未提交的修改,可能會造成衝突的發生,所以儘量保持工作區的清潔。

$ git checkout master
$ git merge 分支名

拉取遠程分支到本地

1、創建本地倉庫

$git init

2.與遠程倉庫取得關聯

$ git remote add origin 遠程主地址

3.拉取遠程分支

$ git fetch origin 遠程分支名

4.在本地創分支dev並切換到該分支

$git checkout -b 本地分支名 origin/遠程分支名

本地新建空分支並更新至遠程

1.將自己的代碼目錄放至一個空文件夾下,在同級目錄下執行

$ git init

2.創建本地分支

$git checkout -b 分支名

3.將代碼添加至暫存區

$ git add *

4.將緩存區內容添加至本地倉庫

$ git commit -m '註釋'

5.與遠程倉庫取得關聯

$ git remote add origin 遠程主地址

6.將本地版本庫推送至遠程服務器

$ git push origin 本地分支:遠程分支

將本地更新的內容更新到遠程

1.先判斷本地的master分支是不是遠程的master的最新內容,即先拉取遠程master到本地

$ git pull------------ 拉取最新的master分支到本地

2.切換到本地的分支,將master的內容merge到本地分支,在本地分支修改內容(內容會自動同步到到本地master)。將當前目錄下修改的所有代碼從工作區添加到暫存區 . 代表當前目錄

$ git checkout 本地分支名
$ git merge master --------將更新的master的內容更新到本地分支
$ git add .

2.將緩存區內容添加到本地倉庫

$git commit -m "註釋"

3.將本地版本庫推送到遠程服務器

$ git push origin 本地分支:遠程分支

git衝突

用git pull來更新代碼的時候,遇到了下面的問題:

error: Your local changes to the following files would be overwritten by merge:
***/***/***.py
Please, commit your changes or stash them before you can merge.
Aborting

出現這個問題的原因是其他人修改了**.py並提交到版本庫中去了,而你本地也修改了xxx.py,這時候你進行git pull操作就好出現衝突了,解決方法,在上面的提示中也說的很明確了。

1、保留本地的修改 的改法
1)直接commit本地的修改 ----一般不用這種方法
2)通過git stash ---- 通常用這種方法

$ git stash
$ git pull
$ git stash pop

通過git stash將工作區恢復到上次提交的內容,同時備份本地所做的修改
之後就可以正常git pull了
git pull完成後,執行git stash pop將之前本地做的修改應用到當前工作區。

git stash: 備份當前的工作區的內容,從最近的一次提交中讀取相關內容,讓工作區保證和上次提交的內容一致。同時,將當前的工作區內容保存到Git棧中。

git stash pop: 從Git棧中讀取最近一次保存的內容,恢復工作區的相關內容。由於可能存在多個Stash的內容,所以用棧來管理,pop會從最近的一個stash中讀取內容並恢復。

git stash list: 顯示Git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。

git stash clear: 清空Git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。

2、放棄本地修改 的改法 ----這種方法會丟棄本地修改的代碼,而且不可找回

$ git reset --hard
$ git pull

參考文章:
https://blog.csdn.net/LZbethelight/article/details/84072236
https://www.cnblogs.com/wenlj/p/5866356.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章