mrbone / mrbone.github.io

0 stars 0 forks source link

git flight rules #17

Closed mrbone closed 6 years ago

mrbone commented 6 years ago

git-flight-rules

mrbone commented 6 years ago

Git Tips

[TOC] 一些git的小技巧

从之前的commit删除一个文件

git checkout HEAD^ myFile
git commit --amend --no-edit

关于HEAD^语法,参考 这里

感觉这个命令有点危险,myFile的改动直接被废弃了,目前还是比较倾向于rebase和reset --soft结合着用

reflog

当提交了一个错误的commit,git reflog 会列出所有之前的操作记录,我们只需要找出想要回到的SHA,然后执行

git reset SHA --hard

就可以干净的回到那个提交点了。

删除远程已经被删除的本地分之

git fetch -p

找回被误删的本地分之

当我们在一个分之开发之后切换回master不小心将之前的分之误删之后。

$(master) git branch -D branch-did-not-push

这个时候又要祭出 reflog 了。

$(master) git reflog

找出之前删除操作之前的 SHA

$(master) git checkout -b branch-did-not-push
$(branch-did-not-push) git reset SHA --hard

这样之前的分之就又回来了。

删除一个远程分之

git push origin :my-branch

或者

git push origin --delete my-branch

重命名一个本地分之

git branch -m new-name

合并未推送的commit

git rebase -i @{u}

Tag

在当前 commit 新建一个 tag

git tag v1.0

新建一个 tag 并附加 message

git tag v1.1 -m "v1.1 release"

显示一个 tag 的 commit 信息

git show v1.1

在对应的 commit 处添加一个tag

git tag -a v1.2 commitSHA -m "some useful message"

推送一个tag

git push origin v1.1

删除本地tag

git tag -d v1.1

删除远程tag

git push <remote> :tag-name

回滚文件

git checkout commitSHA -- file1 file2