git 操作规范
此文章只为总结git常用操作,如有争论,多多见谅,多多批评,互相学习
文章目录
一、创建与合并分支
1、 从master分支创建dev分支并切换到dev分支
git checkout master
git checkout -b dev
其中,git checkout -b dev 等价于:
git branch dev
git checkout dev
(1)查看本地当前的分支,分支前面带“*”表示当前分支,剩下的分支表示本地有的分支
git branch
(2)查看远程全部的分支,白色的表示本地有的,红色的表示本地没有,仅在远程存在
git branch -a
2、修改代码、提交代码(当前的操作是在dev分支上进行)
// git add 工作区 --> 暂存区
// 1、指定提交文件
git add test.html
// 2、提交所有文件
git add .
// git commit 暂存区 --> 本地仓库
git commit -m "提交测试文件test.html"
此处在操作中会涉及到两个问题,合并后删除分支/保留分支
3、分支合并(将dev合并到master)
// 1、合并删除分支
git checkout master
git merge dev
// 本地推送到远程主机
git push origin master
// 删除分支dev
git branch -d dev
// 查看分支(此时看不到dev分支了)
git branch
// 2、保留分支
// 本地dev分支推送到远程主机
git push origin dev
git checkout master
// 拉取远程仓库中所有的数据(更新主支数据)
git pull
// 合并分支方法1(用一种即可):
git merge dev
// 合并分支方法2(用一种即可):
git pull origin dev
// 本地推送到远程主机
git push origin master
4、注意:将本地分支branch1推到远端的branch2操作步骤:
git push origin branch1:branch2
二、 解决冲突
1、发生冲突的文件
冲突的产生是因为 git 无法自动合并两个不同的修改。当两个开发者在同一文件的同一行进行了不同的修改,并尝试合并时,git 就会发生冲突。解决冲突的关键是合并两个不同的修改
git使用 <<<<<<<, =======, >>>>>>> 标记文件中自己和别人产生冲突的部分。
<<<<<<< HEAD
Your code snippet
=======
Someone else's code snippet
>>>>>>> feature1
在<<<<<<<, =======之间为自己的代码;
=======, >>>>>>>之间为别人的代码。
仔细审查冲突的部分,根据实际需求选择保留哪个修改,删除冲突标记,保留需要的修改,并保存文件。
2、冲突解决后提交
// 暂存区 --> 本地仓库 --> 远程仓库
git status
git add <冲突文件>
git commit -m "fix conflict"
git push origin <分支名>
三、Bug分支
我们有时会遇到这样的情况,正在dev分支开发新功能,做到一半时有人过来反馈一个bug,让马上解决,但是新功能做到了一半你又不想提交,这时就可以使用git stash命令先把当前进度(工作区和暂存区)保存起来,然后切换到另一个分支去修改bug,修改完提交后,再切回dev分支,使用git stash pop来恢复之前的进度继续开发新功能。
待续…
四、合并分支问题
有的时候我们在进行项目分支合并 git merge 时会出现如下错误:
Please enter a commit message to explain why this merge is necessary.
报错翻译
merge brach 'dai'
# Please enter a commit message to explain why this merge is necessary,
# 请输入一个提交消息来解释为什么合并是必要的,
# especially if it merges an updated upstream into a topic branch.
# 特别是当它合并一个更新的上游到一个主题分支。
# Lines starting with '#' will be ignored, and an empty message aborts
# 以“#”开头的行将被忽略,空消息将中止
# the commit.
# 提交。
解决方案
It’s not a Git error message, It means you should enter some message to mark this merge.
To solve this:
- press “i” (i for insert)
- write your merge message
- press “esc” (escape)
- write “:wq” (write & quit)
- then press enter
内容参考:https://stackoom.com/question/1I55b
你需要按以下步骤进行操作:
- 按下键盘上的字母 i 进入插入模式(或编辑模式)。
- 在第一行(也就是光标所在位置)编辑合并的原因和必要的注释说明。可以提供任何有关合并的详细信息,如问题修复、功能改进等。
- 如果认为当前的注释已经足够清晰,不需要修改,也可以选择保持不变。
- 退出插入模式,按下键盘上的 Esc 键。
- 在按下冒号(:)后,输入 wq 来保存更改并退出编辑器。
例,展示了如何编辑合并提交消息:
Merge branch 'dai' into mester
This merge is necessary to incorporate the changes from the 'dai' branch into the 'mester' branch.
可以根据实际情况和需求编辑合并提交消息。
五、版本回退
待续…先提交了,后续跟进