- 本地建立一个空文件夹,然后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/