Git常用操作

版本号相关

常看提交版本记录

1
git log

回滚版本

1
git reset --hard 版本号

查看所有的版本号(包括被回滚的)

1
git relog 查看所有版本

查看git当前用户信息

提交github的时候显示的不是登录github的用户名,而是本地的git用户名

1
2
3
4
查看当前git用户名: git config user.name
查看当前git邮箱: git config user.email
切换git用户名: git config --global user.name "YOURUSERNAME"
切换git邮箱: git config --global user.email "YOUREMAIL"

将本地项目关联到远程

1
2
3
4
5
git init 
git add .
git commit -m '初始化项目'
git remote add origin https://github.com/xienb/NPC.git
git push -u origin master

.gitignore中删除已经被git add 的文件

使用场景:当项目中的一些不想被版本控制的文件被git add的时候,如果此时在gitignore文件中添加那些文件,此时是不起作用的,需要将add的文件重cache中删除,使用一下命令:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
$ git rm -r --cached .idea/
error: the following file has staged content different from both the
file and the HEAD:
    .idea/workspace.xml
(use -f to force removal)
# 提示用-f进行删除

# 继续输入一下命令可以删除
$ git rm -rf --cached .idea/
rm '.idea/compiler.xml'
rm '.idea/description.html'
rm '.idea/encodings.xml'
rm '.idea/inspectionProfiles/Project_Default.xml'
rm '.idea/misc.xml'
rm '.idea/modules.xml'
rm '.idea/uiDesigner.xml'
rm '.idea/vcs.xml'
rm '.idea/workspace.xml'

删除之后再用git status命令去看cache中的文件的时候,已经没有.idea中的内容

git修改已提交的记录中的用户名

  1. 先找到提交的记录 【5】 代表最近的五次提交记录
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ git rebase -i HEAD~5
pick 95320cb3 增加limit条数限制,优化sql
pick e848c547 增加动态控制日志级别的 增加日志入为异常的时候保存丢失的数据
pick 5664ee84 增加异常处理,当对象null时跳过。
edit 468722a5 1.批量上下架判断子集情况 2.下发修改
pick 4fb37a5f 修改

# Rebase ed5437ed..4fb37a5f onto ed5437ed (5 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
  • 将想要改变信息的记录由pick->edit
  • wq保存 提示信息如下
1
2
3
4
5
6
7
8
Stopped at 72a09870...  1.批量上下架判断子集情况 2.下发修改
You can amend the commit now, with

  git commit --amend

Once you are satisfied with your changes, run

  git rebase --continue
  1. 执行git commit --amend --author="作者 <邮箱@xxxx.com>" --no-edit 命令
1
2
3
4
5
$ git commit --amend --author="test <xxx@163.com>" --no-edit
[detached HEAD 468722a5] 1.批量上下架判断子集情况 2.下发修改
 Author: test <xxx@163.com>
 Date: Tue Dec 31 10:08:26 2019 +0800
 9 files changed, 91 insertions(+), 18 deletions(-)
  1. 执行 git rebase --continue
1
2
$ git rebase --continue
Successfully rebased and updated refs/heads/xxx.
  1. 执行git push -f
1
$ git push --force

git bash配合v2ray使用

1
2
3
4
5
6
7
# 查看git代理配置
git config --global http.proxy http://127.0.0.1:10809

# 取消代理设置
git config --global --unset http.proxy

# 全局设置 http 代理此命令修改的文件为  C:\Users\用户名\.gitconfig (Windows 环境下)

单个项目独立配置

位于本地仓库文件的的.git文件夹的config文件中,需要显示所有文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = https://github.com/xxx/spring-sourcecode-4.3.22.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[user]
    name = xxx
    email = xxx@xx.xxx
[branch "master"]
	remote = origin
	merge = refs/heads/master
0%