创建分支git branch
git branch x
仅创建一个叫x的分支拷贝,不对代码进行任何变动
- 可以创造平行时间线x
- 术语叫“分支”
- 虚拷贝,引用
- 可以同时基于master/branch x开发
切换分支git checkout
- .git同时维护master和branch x
git checkout x
git checkout master
- 两个时间线交替进行
- 时不时查看下
git status
ls -a/pwd
下查看目录- 分别修改了各自分支后...
看历史,非git命令
history
小结
git branch
- 基于当前最新commit创建一个新的时间线(分支的快照),不是基于当前代码
- 在哪个分支提交,代码就出现在哪个分支
- 默认在master主分支
- Cmder/git-bash会提示目前所在的分支,如果你初始化过,iterm2默认不会,要设置
git checkout
- 用于切换另一个分支
- 当前目录有未add/未提交的代码,只要跟另一分支不冲突,就不需要理会,不影响硬盘上原有的文件(git reset是影响的)
- 如果冲突(修改了文件内容),会报一个error,使
git checkout
切换失败 - 此时要么
git commit
下,要么使用git stash合并冲突
直接查看当前所在branch
不加参:
git branch
输出:
* master
x
*就表示当前所在branch,智能的Cmder就不用了
合并分支git merge
1. 切到你想保留的那个分支,一般是主分支master
git checkout master
2. 将另一个分支合并到当前分支
git merge xxx
3. 提示有冲突,查看status
git status
4. 在VSCode里逐行修改
- 找到========
- 逐行修改,删掉=======
- 删掉标记<<<<<<<
- 删掉标记>>>>>>>
- 保存,修改完毕
5. git add标记下(暂存)
git add
6. 直接提交
git commit
不用加参数,自动添加标记 Merge branch 'xxxx'
git merge 可能有冲突,也可能没
- 发现冲突
- 合并分支时 ,会得到CONFLICT提示
- 使用
git status -sb
查看哪个/哪些文件冲突了
- UU表示两边都改了
- s表示summary b表示brunch
- 解决冲突
- 依次打开每个文件
- 搜索====四个等于号
- 在上下两个部分中选择要保留的代码,只选上面/只选下面/都保留
- 删除不用的代码
- 删除==== <<<< >>>>这些标记
- git add 暂存对应的文件
- 再次
git status -sb
,解决下一个文件的冲突 - 直到没有冲突,运行
git commit
(注意不需要选项)
小结2
分支可以合并
- 进入要保留的分支
- 运行
git merge xxx
- 合并后,删除无用的分支
git branch -d xxx
合并时冲突处理
- 修改代码,解决冲突
- 然后
git commit
,使用默认的commit message
Git本地仓库_大总结
命令
-
git config
(6行配置) -
git add 路径
(标记:加进/移除购物车 暂存) -
git status -sb
(简化状态信息) -
git commit -v
(提交:结算+记笔账) -
git branch xxx
(创建分支) -
git checkout xxx
(进入分支) -
git merge xxx
(合并分支,还要add下,加进购物车) -
git commit
(提交合并,自动记账) -
git branch -d xxx
(砍掉分支) -
git log
(查看) -
git reflog
(本地上帝视角查看) -
git reset --hard ******
(版本穿越)
.git目录:本地仓库
- 不会重复复制相同的文件(优化)
- 可以支持多个分支
一些细节
git add
- 使用
git add
来临时记录变动外,也能记录git rm xxx
(处理的是文件的变化,而不是文件本身)
比如删除一个文件后,依然要用git add
来添加到待提交区
rm xxx
git add xxx
git status
git commit -v
当使用git commit
提交后,.git会移除xxx:
此时git add xxx
、git commit -m
"delete xxx" 等同于git rm xxx
、git commit -m
"delete xxx"
- 大部分时候,只需
git add
和git commit -v
- 不需要GUI,当然你会用,还知道原理
VSCode插件git-easy使用:在当前文件里Ctrl + Shift + p;搜git add
;Add All Modified
;...
·未完待续·
参考文章
相关文章
- 无
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。