实用的git操作记录
Posted 非晚非晚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实用的git操作记录相关的知识,希望对你有一定的参考价值。
git简单而实用,使用时间长了,越来越喜欢它,简直是开发利器。现在记录一些实用操作,以供大家参考。
1. 初始配置
绑定Git的用户名及邮箱
git config --global user.name "yourname"
git config --global user.email "yourname@163.com"
生成ssh文件
ssh-keygen -t rsa -C "yourname@163.com"
然后一路回车即可
id_rsa是私钥,id_rsa.pub是公钥,windows和Linux都在用户的.ssh文件夹下:
cd
cd .ssh
cat id_rsa.pub #复制该文件下的全部内容,
2. 合并多个commit
- 操作步骤
git log # 查看commit记录
git rebase -i hash_num # hash_num为不需要合并的hash号
# 然后会弹窗,修改为合并选项,如下
把pick改为squash或者s,并:wq保存
# 继续弹窗,编辑commit内容,可以和原来不一样,也可以将不需要的注释掉
- 最后查看commit记录
git log #只是为了检查
- 说明
- rebase参数说明:
git rebase -i [startpoint] [endpoint]
- -i 的含义是:–interactive, 即弹出交互式的界面让用户编辑完成合并操作
- [startpoint] :合并区间的起点。默认是当前分支 HEAD 所指向的 commit。
- [endpoint] :合并区间的终点,endpoint为不需要包含的commit的hash
- 参数选项说明:
p, pick: 保留该 commit。
r, reword: 保留该 commit,可以修改 commit 的注释。
e, eidt: 保留该 commit,但停下来修改该 commit (不仅仅是注释),可以用来解决 merge 冲突。
s, squash: 将该 commit 和 前面一个 commit 合并。
f, fixup: 将该 commit 和 前面一个 commit 合并,但不保留该提交的注释信息。
x, exec: 执行 shell 命令。
d, drop: 丢弃该 commit。
3. 修改旧的commit消息
同样也是使用rebase -i操作,不同的是,需要将pick改为reward或者r,然后将原消息修改为自己需要的commit新消息
4. 修改本地和远程分支名字
- 修改本地分支名字
- 修改非当前分支的名字
git branch -m "原分支名" "新分支名"
- 修改当前分支的名字
git branch -m "新分支名称"
- 修改远程分支的名字
git push --delete "原分支名" #先删除远程分支
git branch -m "原分支名" "新分支名" #修改本地分支名字
git push origin "新分支名" #推送至远程分支
5. 删除本地和远程分支
- 删除本地分支
git branch -d local_Branch_name # 方法1:
git branch -D local_Branch_name #方法2:-D等效于--delete --force命令的标志代替-d
- 删除远程分支
git push origin --delete remote_Branch_name
6. 找回丢失的commit
有时候使用git reset --hard之后,就看不到最新的一些commit,如果想要回退到之前的commit,可以使用下列命令来查看历史hash,然后使用reset操作找回之前的commit。
查看历史操作命令
,下列2个都可以:
git reflog
git reflog show
7. 合并分支操作(rebase)
假设现在有两个分支,一个master分支,另一个dev分支,现在要把dev分支的内容合并到master分支上去。
- 切换至dev分支
git branch dev
- rebase合并
git rebase master
- 如果有冲突,执行下列操作,如果没有则跳过
打开vscode,解决冲突,然后执行continue操作,直到没有冲突
git rebase --continue
提示没有冲突后,添加修改至现在的分支
git add . #添加所有修改
注意这里不需要提交commit操作
- 提交远程
git push origin master
#如果提示有问题,且自己确认代码无误,可以强制提交
git push origin master -f
以上是关于实用的git操作记录的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程