1. 在 gitbash 中输入 Git branch, 可以查看分支:
2. 查看远程端的分支命令: Git branch -a
3. 在本地如何创建分支, Git checkout -b branch1
4. 再次使用 Git branch 查看, 本地有两个分支了:
5. 使用 Git branch -a, 发现远程端并没有 branch1 分支
6. 如何将本地分支推送到远程呢?
<1>. 使用 Git status, 发现当前在 branch1 分支
- <2>
- . 编辑原来的 test.txt 文件, 修改原来文件并保存:
- <3>
- . 使用 Git add 追加文件: Git add test.txt
- <4>
- .Git commit -m "提交到 branch1 上的内容"
- <5>
- .Git push , 提示错误:
- <6>
- . 使用 Git push --set-upstream origin branch1, 即可推送到远程 GitHub 上
- <7>
- . 结果发现 GitHub 网站上 branch1 下有多个文件:
解决办法, 清理缓存, Git 中清理缓存的命令是:
Git rm -r -f --cached ./ (删除缓存)
重新创建分支, 修改文件, 推送:
- Git cheout -b "branch5"
- Git statsus
VIM test.txt, 修改 test 文件并保存退出
- Git add test.txt
- Git commit -m "推送文件到 branch5 分支上"
- Git push --set-upstream origin branch5
进入 GitHub 网站上, 查看 branch5 下面的文件:
发现只推送了 test.txt 文件了
<8>. 删除分支:
命令: Git branch -d 分支名称 (branch1), 不能再当前工作分支下删除
如果在当前工作分支下删除, 会提示错误: 不能删除分支, 必须要切换分支
切换分支命令: Git checkout master, 出现错误:
通过错误提示可知, 是由于一些 untracked working tree files 引起的问题. 所以只要解决了这些 untracked 的文件就能解决这个问题
在本地仓库目录下执行命令: Git clean -d -fx 即可
可能很多人都不明白 - d,-fx 到底是啥意思, 其实 Git clean -d -fx 表示: 删除 一些 没有 Git add 的 文件;
Git clean 参数
-n 显示将要删除的文件和目录;
-x ----- 删除忽略文件已经对 Git 来说不识别的文件
-d ----- 删除未被添加到 Git 的路径中的文件
-f ----- 强制运行
- Git clean -n
- Git clean -df
- Git clean -f
再次切换分支: Git checkout master, 发现分支切换成功:
删除分支 branch1: Git branch -d brach1
分支删除成功
再次使用 Git branch, 查看本地分支已被删除:
查看远程分支: Git branch -a, 发现远程分支仍然存在
说明刚刚操作只是删除了本地分支.
如何删除远程分支呢? Git 命令: Git branch -r -d origin/branch1(分支名称)
发现确实是删除了. 但是进入 GitHub 中发现 branch1 分支并没有删除:
为什么分支没有删除成功呢? 原来是 Git 命令问题: Git push origin :branch1(分支名称),origin 后面有空格
发现确实是删除了, 在进入 GitHub 网站中, 查看分支, 发现 branch1 被删除了
以上就是删除分支的操作
<9>. 合并分支操作:
1. 创建分支: Git checkout -b mergedemo
2. 修改 test.txt 文件, 并保存: VIM test.txt
3.cat test.txt, 发现修改成功
- Git add test.txt
- Git commit -m "增加合并内容"
6. Git push --set-upstream origin mergedemo, 推送到 mergedemo 分支, 提示推送成功
7. 切换到 master 分支, Git checkout master, 提示错误:
error: The following untracked working tree files would be overwritten by checkout:test2.txt
Please move or remove them before you switch branches.
Aborting
8. 使用 Git clean -d -fx, 提示删除 test2.txt 文化
9. 再次使用 Git checkout master, 切换到 master 分支; 提示切换成功, 当前在 master 分支:
10. 查看 master 下的文件, 发现 test.txt 并没有修改;
11. 使用合并分支命令: Git merge mergedemo(需要合并的分支)
12. 再次查看 test.txt, 发现文件被修改了:
以上就是合并分支的操作
<10>. 解决合并分支的冲突问题, 多人合作的时候, 存在多人同时修改一个文件的情况; 实际工作中需要将其他分支代码合并到 master 分支上.
在 master 分支使用 Git merge mergedemo 时, 出现了冲突:
查看 merge 的文件内容: cat test.txt
出现了这种情况, 意味着发生冲突了, 此时, 需要修改 test.txt 文件, 去掉中间的 HEAD,=== 号, 以及下面的 > 号,
重新追踪文件: Git add test.txt
- Git commit -m "解决合并分支冲突问题"
- Git push
再次查看 test.txt 文件, 发现 master 分支已经合并成功了:
进入 GitHub 网站, 查看 master 下的分支内容, 发现合并成功了:
来源: http://www.bubuko.com/infodetail-3210529.html