Chen Shawn's Blogs

╭(●`∀´●)╯ ╰(●’◡’●)╮

0%

git使用记录

git一些不是很常用的功能经常忘记指令,在这里简单记录

1. 冲突解决

通常发生在多人协作开发时,不同的人对同一分支做了不同的修改,在提交的时候会由于冲突而无法通过。一般如果远端分支比本地分支更新的话,会选择直接抛弃本地分支,将远端分支的内容全部覆盖到现有代码上

1
2
3
# 若本地存在未commit的改动,需要这条指令
$ git stash
$ git pull --rebase origin master

但如果本地分支的改动和远端分支的改动都想保留,或者希望自定义需要保留的内容的话,就需要解决冲突。首先我们知道 git pull 等同于 git fetch + git merge两条指令,解决冲突的步骤包括

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 下载远端分支到本地缓存区
$ git fetch
# 若本地分支的改动尚未保存,需要先将改动commit掉
$ git add .
$ git commit -m "xxxx"
$ git merge
# 执行git merge后会显示哪些文件可以自动merge,哪些文件存在冲突
# 自动merge的文件会显示auto merge,冲突的文件会显示大写的CONFICT
# 然后就需要定位到存在冲突的文件中解决冲突

# 解决完冲突后,下面两种方法都是可以的
# 方法1
$ git rebase --continue
# 方法2
$ git add .
$ git commit -m "xxxx"

2. 恢复本地缓冲区中暂存的分支

1
2
3
$ git stash
# xxxxxxxxxxxxxx
$ git stash pop

3. 新分支创建、合并与删除

创建分支、切分支

1
2
3
4
5
6
7
8
# 查看当前分支
$ git branch
# 开一个叫做new-feature的新分支,该操作不会影响到当前正在进行的代码修改工作
$ git checkout -b ${new-branch}
# 如果 ${new-branch} 已存在
$ git checkout ${new-branch}
# 切回主分支
$ git checkout master

本地删除分支、远程删除分支

1
2
3
4
# 本地删除分支
$ git branch -d ${new-branch}
# 远程删除分支
$ git push origin --delete ${new-branch}

如果本地删除分支前该分支还未合并,会提示使用下面的命令强制销毁,一般除非git branch -d失败,且确定要放弃分支,否则不要直接用这条命令

1
$ git branch -D ${new-branch}

如果需要在删除前先合并分支,比如需要把new-branch合并到master然后再删除new-branch,那么

1
2
3
$ git checkout master
$ git merge ${new-branch}
$ git branch -d ${new-branch}

4. 其他

git add .是一个很容易错误加入不想要的文件的命令,撤销方法是

1
$ git reset HEAD