Git常用命令

配置用户名和邮箱
### 配置用户名
git config --global user.name "username"
### 配置邮箱
git config --global user.email email_address

### 查看用户名、邮箱
git config user.name
git config user.email

### 查看其它配置信息
git config --list

### 生成key
ssh-keygen -t rsa
# 执行后,会在 C:\Users\个人用户名\.ssh\id_rsa.pub,然后复制到github上面
创建/删除分支
### 创建分支
git branch 分支name

### 切换分支
git checkout 分支name

### 查看当前存在的分支,有的分支名前面有*号,表示是当前检出的分支
git branch
- 加上 -v 选项后,可以查看所有分支的最后一次提交的commit id和提交时的说明文字
git branch -v
- 加上 --merged 选项后,可以查看已经合并的分支
git branch --merged

### 删除分支
git branch -d 分支名
- 对于还未合并的分支,-d无法删除,可以使用 -D 强制删除
git branch -D 分支名
合并分支
### 快速合并
- 将分支B合并到分支A
- 切换到分支A
git checkout A
- 合并
git merge B
- 合并完成后,可以看到输出信息:Fast-forward(快进合并)。因为分支B是在分支A的基础上创建的,两个分支之间没有出现分叉。因此,使用快进合并即可。

### 正常分支合并
- 存在分叉情况
git merge B
- 将A和B的提交整合在一起后,并产生一个新的提交
#### 解决冲突
- 合并时产生冲突,提示:CONFLICT(content)
- 可以通过 git status 查看工作区状态,会显示 both modified 用来提示相应文件被两个分支修改过
- 手动解决,打开相应文件,可以发现冲突的代码已经被 <<<<<<<<<=========== 隔开了,示例如下:
	<<<<<<< head
	this commit is from AAAAA
	========
	this commit is from BBBBB
	>>>>>>>> BBBBB
有head标签的表示是当前分支的修改,=======下面的则是要合并的分支代码
这时需要自行决定冲突内容的去留,修改后,add以及commit即可
查看提交历史
### 查看提交历史
git log
未加选项,会按顺序输出所有的提交日志

### 筛选 -p 或 --patch
如:
git log -p 3
后面的数字表示要显示的日志数量
远程仓库设置
### 这里将远程仓库名称设置为origin,没有特殊含义
git remote origin 远程仓库地址

### 关联远程仓库后,可以将本地的提交推送到远程仓库
git push -u origin master
这样,就将本地的master分支同步推送到远程仓库的master分支上了

### 推送与同步
当要推送的远程分支上有比本地更新的提交时,此时无法推送成功,需要将远程分支的最新提交同步到本地后,然后在推送
git fetch origin master	# 仅仅是将远程分支同步到本地分支,还没有合并
git merge origin master # 将远程分支与主分支合并
### 或者使用一条命令即可
git pull origin master
存储工作区文件(stash)
例子:
A正在本地自己的分支上开发新功能,突然线上出现一个bug需要马上修复,A不得不切换到master分支并同步线上master分支的代码。但是A因为功能未开发完成,所以并没有将工作目录中的文件提交到功能分支,切换master分支后,功能分支相关的文件还在工作目录中,如果这些文件中跟线上master分支有冲突,那就没办法同步远程仓库master上的代码了。
这时,可以通过 git stash 命令,将当前工作的文件暂时存储到某个独立的地方,把工作区清理干净,避免未完成的修改对临时变更产生影响。
当A完成了线上bug的修复后,再切换到功能分支上开发,然后执行 git stash pop 命令,就可以把之前存储的文件调出来,继续功能开发。
### 
git stash
git stash pop
撤销操作
### 文件回到提交状态
假如本地临时调试修改了某个已提交的文件,那么这个文件就变成已修改的状态,但是又不想提交这个修改。
因此,调试完成后,可以通过 git restore 文件名 命令,将这个文件恢复到改动之前。

### 从暂存区撤回文件
执行 git add 命令后,就是将修改后的文件添加到暂存区。
如果想从暂存区撤回,可以通过 git restore --staged 文件名 命令,将这个文件撤回。

### 修改提交
如果暂存区的文件已经提交了,想要修改,又不再提交,而是想要修改刚刚的提交,可以通过
把要改的文件改好后添加到暂存区,然后执行 git commit --amend 命令
即表示要修正上一个提交
回退
git reset --hard commit_id
标签
### 显示所有tag
git tag

### 模糊筛选
git tag -l "***"

### 查看tag详情,可以看到tag绑定的commitID
git show tagName

### 创建tag
git tag -a tagName -m "message" # 默认绑定上一次commitID
### 指定commitID
git tag -a tagName commitID -m "message"

### 推动tag
git push origin tagName

### 删除tag
git tag -d tagName # 本地删除

### 删除远程,首先要删除本地
git push origin :refs/tags/tagName 
推送
### 强制推送
git push -f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值