git常用命令

本地仓库与远端仓库链接

1
2
3
4
5
6
7
8
9
10
11
12
13

# 查看远端仓库
git remote -v

# 查看当前配置的用户名和邮箱 ,如果没有设置需要进行设置
git config --global --list

# 需要注意需提前将本机生成的ssh公钥保存在远端仓库个人账户中
# 将本地仓库与远端仓库建立链接
git remote add origin git@gitee.com:attacki/attack-i.git

# 取消git跟踪node_debug.log文件
git checkout -- node_debug.log

更改远程仓库地址

1
2
# 修改命令
git remote set-url origin https://github.com/Attacki/attacki.git

git常见用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 在dev分支
git add .

# 代码提交
git commit -m 'fix: 修复服务监控mettingId丢失'

# 代码推送远端
git push

# 切换到release分支
git checkout release

# 新建并切换到一个bugfix分支,为的是将dev分支的修改,追加到bugfix分支上,然后合并到release上
git checkout -b bugfix_monitor_0715

git reflog

# 将dev分支的提交的那次修改添加到bugfix_monitor_0715上面
git cherry-pick 1d72444b0d6fe707d2835c01fec0a125fad93ff6

# 将bugfix分支推送远端部署,并验证bug
git push --set-upstream origin bugfix_monitor_0715

# 将验证过的bugfix分支合入到release
git merge bugfix_monitor_0715

# 合并
git merge dev

git代码暂存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 保存当前未commit的代码
git stash

# 保存当前未commit的代码并添加备注
git stash save "备注的内容"

# 列出stash的所有记录
git stash list

# 删除stash的所有记录
git stash clear

# 应用最近一次的stash
git stash apply

# 应用最近一次的stash,随后删除该记录
git stash pop

# 删除最近的一次stash
git stash drop

cherry-pick用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 一次转移多个提交:
git cherry-pick commit1 commit2

# 多个连续的commit,也可区间复制:
git cherry-pick commit1^..commit2

# 在cherry-pick有冲突时, 需要解决代码冲突,重新提交到暂存区, 然后使用下面命令
gits cherry-pick --continue

# 放弃 cherry-pick, 恢复到cherry-pick之前的样子
gits cherry-pick --abort

# 退出 cherry-pick, 保留已经 cherry-pick 成功的 commit,并退出 cherry-pick 流程
gits cherry-pick --quit

git分支代码 merge

1
2
3
4
5
6
7
8
9
10

# 最基本的合并方式, 包含完整的提交历史记录。
git checkout master
git merge dev



# 会把差异暂存本地, 需要自己commit, 会丢失历史记录, 因为改动变成自己提交的了
git checkout master
git merge --squash dev

rebase merge 可以保留提交的作者信息,同时可以合并commit历史

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

git checkout dev
# 将master上面所有dev分支所没有的提交, 都给拉过来
git rebase master

# 上面这一步可能会有冲突(如果没有,可省略这一步), 解决冲突后, add到暂存区
git add .

# 继续rebase的完成
git rebase --continue

# 放弃rebase操作
git rebase --abort

# 回到 master 分支, 然后直接 merge dev
git checkout master
git merge dev