您的位置:首页 > 其它

Git使用积累

2017-11-12 20:59 211 查看

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记录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git