分支
我们的开发就像是游戏的任务,默认是在主线(master)上进行开发的。许多时候,还有各种支线任务,git 支持我们创建分支来进行项目开发
查看分支
git branch
创建分支
git branch 分支名称
切换分支
git checkout 分支名称
# 也可以使用 checkout -b 来新建分支
git checkout -b 分支名称
分支合并
# 如果分支为未合并状态,则不允许删除
git branch -d 分支名称
# 强制删除
git branch -D 分支名称
合并记录
~ 与 ^
rebase 操作
# p, pick = use commit => 使用
# r, reword = use commit, but edit the commit message => 使用,但重新编辑说明
# e, edit = use commit, but stop for amending => 使用
# s, squash = use commit, but meld into previous commit => 使用,但合并上一次
# f, fixup = like "squash", but discard this commit's log message => 就像 squash 那样,但会抛弃这个 Commit 的 Commit message
# x, exec = run command (the rest of the line) using shell => 执行脚本
# d, drop = remove commit => 移除
git rebase -i HEAD~3
# 弹出编辑器,根据需要的进行修改,然后保存
# 如果为 r,s 则会再次弹出编辑器,修改新的 commit message,修改之后保存
如果出现一些问题,可以通过 git rebase --edit-todo
和 git rebase --continue
进行重新编辑保存
合并冲突
有的时候,不同的分支可能会对同一个文件内容和位置上进行操作,这样在合并的过程中就会产生冲突
-
查看冲突文件
-
修复冲突内容
-
提交
git 远程
链接
git remote add origin git@github.com:miaov-zmouse/kkb-test.git
提交(同步)远程
同步本地仓库到远程
git push -u origin master
# -u 简化后续操作
git push origin master
远程分支
# 提交到远程(分支)
git push origin [本地分支名称]:[远程分支名称]
# 远程先创建好分支然后拉取到本地
git checkout -b [本地分支名称] origin/[远程分支名称]
# 拉取远程分支到本地
git pull origin [远程分支名称]:[本地分支名称]
# 查看远程仓库
git remote show origin
# 查看本地分支
git branch
# 查看远程分支
git branch -r
# 查看所有分支
git branch -a
# 删除本地分支
git branch -d [本地分支名称]
# 删除远程分支
git push origin --delete [远程分支名称]
# or
git push origin :[远程分支名称]
# 设置默认提交分支
git branch --set-upstream-to=origin/[远程分支名称] [本地分支名称]
扩展:工作流 - git work flow