git--本地分支与远程分支

时间:2025-04-11 07:22:49
  • 本地建立一个空文件夹,然后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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

*表示当前所在的分支,remotes表示远程分支
另外,还可以通过 git status查看当前所有分支

$ git status
On branch size_expand
nothing to commit, working tree clean
  • 1
  • 2
  • 3

一、git创建本地分支

$ git checkout -b 本地分支名   
  • 1

表示创建本地分支并切换到新建分支,等价于以下两行:

1.创建本地分支:git branch 本地分支名
2.切换到新建的分支:git checkout 本地分支名
  • 1
  • 2

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

$ git branch
  master
* size_expand
  • 1
  • 2
  • 3

若发现git branch之后内容为空,则需要将需要git的文件内容添加至仓库

$git add *
  • 1

二、将本地分支关联到远程分支

$ git push origin 本地分支名:远程分支名
  • 1

注: push之后才可以pull
如果直接用$ git push origin 本地分支名,则默认和远程分支同名
这个时候,远程的分支已建立了。

三、删除分支

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

删除新建的远程分支`在这里插入代码片`
$ git branch -r -d origin/远程分支名
或者
$ git push origin :远程分支名

第二种push为空,相当于删除该分支
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

四、合并分支

checkout 切换到master, 然后将所需的分支并入。注意:切换过程中,暂缓区或工作目录存在未提交的修改,可能会造成冲突的发生,所以尽量保持工作区的清洁。

$ git checkout master
$ git merge 分支名
  • 1
  • 2

拉取远程分支到本地

1、创建本地仓库

$git init
  • 1

2.与远程仓库取得关联

$ git remote add origin 远程主地址
  • 1

3.拉取远程分支

$ git fetch origin 远程分支名
  • 1

4.在本地创分支dev并切换到该分支

$git checkout -b 本地分支名 origin/远程分支名
  • 1

本地新建空分支并更新至远程

1.将自己的代码目录放至一个空文件夹下,在同级目录下执行

$ git init
  • 1

2.创建本地分支

$git checkout -b 分支名
  • 1

3.将代码添加至暂存区

$ git add *
  • 1

4.将缓存区内容添加至本地仓库

$ git commit -m '注释'
  • 1

5.与远程仓库取得关联

$ git remote add origin 远程主地址
  • 1

6.将本地版本库推送至远程服务器

$ git push origin 本地分支:远程分支
  • 1

将本地更新的内容更新到远程

1.先判断本地的master分支是不是远程的master的最新内容,即先拉取远程master到本地

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

2.切换到本地的分支,将master的内容merge到本地分支,在本地分支修改内容(内容会自动同步到到本地master)。将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录

$ git checkout 本地分支名
$ git merge master --------将更新的master的内容更新到本地分支
$ git add .
  • 1
  • 2
  • 3

2.将缓存区内容添加到本地仓库

$git commit -m "注释"
  • 1

3.将本地版本库推送到远程服务器

$ git push origin 本地分支:远程分支
  • 1

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
  • 1
  • 2
  • 3
  • 4

出现这个问题的原因是其他人修改了**.py并提交到版本库中去了,而你本地也修改了,这时候你进行git pull操作就好出现冲突了,解决方法,在上面的提示中也说的很明确了。

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

$ git stash
$ git pull
$ git stash pop
  • 1
  • 2
  • 3

通过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
  • 1
  • 2

参考文章:
/LZbethelight/article/details/84072236
/wenlj/p/