Git 笔记

基本配置

如何在本地环境配置github - trigkit4 - SegmentFault 思否

合并多个 commit

很多时候都以为这次一定没问题了, 但是提交了之后才发现其实并没有解决问题, 因此就再次提交, 为了提交信息清爽、有效, 可以合并一些commit.

  • 方法一是通过 git rebase 合并的方法 [1]
# 首先使用合并命令, 两种方法
## 一种是合并最近n次 commit
git rebase -i HEAD~3
## 一种是合并到某个版本号
git rebase -i 8fb7df

# 合并
## 命令执行以后, 会弹出一个窗口
pick 3ca6ec3   '注释**********'
pick 1b40566   '注释*********'
pick 53f244a   '注释**********'

## 将第一行之外的 pick 改为 squash 或 s, 然后 wq 保存
pick 3ca6ec3   '注释**********'
s 1b40566   '注释*********'
s 53f244a   '注释**********'

## 保存成功之后就会弹出第二个文件, 如果不想修改 commit messgae, 只要继续 wq 保存即可完成合并.

# This is a combination of 4 commits.  
#The first commit’s message is:  
注释......
# The 2nd commit’s message is:  
注释......
# The 3rd commit’s message is:  
注释......
  • 方法二
    通过 git reset 合并
# 使用 git reset 命令回到两个 commit 之前的版本, 但并不撤销当前版本的代码
git reset --soft HEAD~2  

# 此时重新 commit 即可完成合并
git commit --amend

Git User Config

使用不同的代码托管平台, 可能 username 和 email 也有所不同.

  • 全局配置, 为项目提供默认配置
    通过下面一条命令, 可以为电脑配置 git 默认的 name 和 email
git config --global user.name 'name'
git config --global user.username 'username'
git config --global user.email 'address@mail.com'
  • 实际上, 执行该命令会在个人根目录下创建 .gitconfig 文件, 通过修改该文件能达到相同的效果
[user]
	name = name
	email = address@mail.com
  • 局部配置, 针对项目进行专有配置
git config --local user.name 'name'
git config --local user.username 'username'
git config --local user.email 'address@mail.com'
  • 同样地, 执行该命令会在 .git 文件夹下创建 config文件, 通过修改该文件能达到相同的效果
[user]
	name = name
	email = address@mail.com

撤销 commit

与合并 commit 是类似的需求, 如果某一次 commit 提交的代码仍然有问题, 更麻烦的, 如果上传了一些奇奇怪怪的文件, 如果不小心上传了配置文件, 就需要撤销 commit.

总之都是回到上个版本, 但是代码仍然保留, 重新修改即可重新 commit.

git reset --soft HEAD^
git reset commit-id 

# 对于不小心 git add . 追踪的文件, 使用一下命令就可以取消追踪
git checkout -- <file>

  1. Git 合并多个commit - nihao - SegmentFault 思否 ↩︎

posted @ 2019-04-30 15:17  质子  阅读(140)  评论(0编辑  收藏  举报