Git使用积累

Git版本中文件的状态

  • untracked
    以前版本库中没有的文件,没有通过git add 添加到版本库的文件;
  • Unstaged
    通过git add添加到版本库后又修改的文件;
  • Staged
    所有通过git add 添加的文件;

修改提交记录

查看提交内容

加入你刚刚盲目的使用 git commit -a,你并不记得这个提交实际包含的内容,你可以通过下面的命令展示最近一次的提交的内容:

(master)$ git show

或者

$ git log -n1 -p

修改提交信息

你可以通过如下命令修改一条还没有push的提交信息:

$ git commit --amend

这条命令会打开一个默认编辑器然后编辑提交信息或者直接使用

$ git commit --amend -m 'xxxxxxx'

如果提交信息已经push了,只能通过上面的方法修改提交信息的同时push的时候添加force参数

修改提交记录里面的邮箱和作者

$ git commit --amend --author "New Authorname <authoremail@mydomain.com>"

从提交记录里面删除一个文件

git checkout HEAD^ myfile
git add -A
git commit --amend

删除或修改最近一次提交

$ git commit --amend
$ git reset HEAD^ --hard
$ git push --force-with-lease [remote] [branch]

删除或修改最近一次提交

$ git reset HEAD^ --hard
$ git push --force-with-lease [remote] [branch]

如果记录还没有提交到远程,将git指针重置为之前的状态(暂存区保存更改)

(my-branch*)$ git reset --soft HEAD@{1}

这个只对你还没有提交记录有效,如果你已经提交了记录,唯一安全的命令是git revert ,这个命令会新增一条提交记录用于删除之前的提交记录。push的时候加上–force-with-lease(缩写为-f)是件很危险的事,会不可挽回的修改你的提交记录,如果还有其他人在一起协作,可能扰乱别人的工作,一定要慎用。

删除任意提交(commit)

SHA1_OF_BAD_COMMIT表示想要删除的commit号

$ git rebase --onto SHA1_OF_BAD_COMMIT^ SHA1_OF_BAD_COMMIT
$ git push -f [remote] [branch]

撤销 git reset –hard

(master)$ git reflog

你将会看到一个你过去提交(commit)的列表, 和一个重置的提交。 选择你想要回到的提交(commit)的SHA,再重置一次:

(master)$ git reset --hard SHA1234

git reflog : 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
git log : 不能察看已经删除了的commit记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值