git常用操作

部分内容整理自网络,仅供参考。

1、git临时存取文件。
使用场景:比如开发做到一半,才发现,忘了切分支。
或者是做到一半,突然出现发现另一个分支上,有紧急bug,必须赶快切分支过去修改。
这时候,用git stash暂存是最快的办法。可以将当前修改保存到缓存区里,切换到另一个分支工作。
工作完成后,再切回分支。再用git stash pop把之前的修改取回来。

git stash # save uncommitted changes # pull, edit, etc.
git stash list # list stashed changes in this git
git show stash@{0} # see the last stash
git stash pop # apply last stash and remove it from the list
git stash --help # for more info

2、删除远程分支

尽量不要删除tag,会出现奇怪的冲突错误。
分支可以删除,不容易出问题。

在Git v1.7.0 之后,可以使用这种语法删除远程分支:
git push origin --delete <branchName>

删除tag:
git push origin --delete tag <tagname>

更新的版本,可以:
拉取远程分支:
git pull <远程主机名> <远程分支名>:<本地分支名>
如:git pull origin f_link:f_link

删除远程branch或tag
git push origin :<branch/tag>

3、 revert 指定文件。
git的revert比较奇怪,就是checkout。
git checkout filename(文件名)

4、 回滚到指定的版本
特别注意,尽量不要用reset,可以用git revert 来替换。
因为本地reset过后,远程服务器如果有多个备份,或者是有自动化的同步。
将会无法同步到reset这个操作。会造成各种冲突、多头之类的错误。
所以尽量用revert来代替reset,因为revert版本,会生成新的版本。push过后,
远程服务器可以很好的同步。

git reset –-hard 版本号xxx
1)先备份本地代码库,不是必须的操作,但是提醒要做的,当然也可以直接开个分支备份。
2)git log找到要回滚的版本
3)git reset --hard 要回滚到的版本号,
比如 git reset --hard 91deaf(文件都回来了,包括config.php)
4)git push -f origin master

5、如果遇到冲突报错 error: failed to push some refs to 或 reprojectd 之类的
先备份本地代码库。

先:
git pull --rebase origin master
再:
git push -u origin master

如果还没解决,可能需要在服务器端删除多余的文件。
服务器端需要先git clean -d -fx ""代码。
然后,本地修改代码后,再push,以及再发tag。

6、配置merge工具。

.gitconfig文件新增如下配置并保存。
.gitconfig文件在用户目录下。

[diff]
    tool = bc4
[difftool]
    prompt = false
[difftool "bc4"]
    cmd = "\"C:/Program Files/Beyond Compare 4-X64/BCompare.exe\" \"$LOCAL\" \"$REMOTE\""
[merge]
    tool = bc4
[mergetool]
    prompt = false
[mergetool "bc4"]
    cmd = "\"C:/Program Files/Beyond Compare 4-X64/BCompare.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""

 

使用的时候,
如果遇到merge冲突,可以直接执行。
git mergetool
这样就可以修改冲突了。
修改的时候,上面三个框会显示 编辑已禁用 ,就是这样的。
只能最下面修改。

7、对比不同版本、或不同分支的同一文件。
git diff commit_id1 commit_id2 -- index.html

git difftool commit_id1 commit_id2 -- index.html

8、git删除远程分支后,本地git branch -a 依然能看到。

先执行git remote show origin查看,
再执行git remote prune origin删除。

posted @ 2017-05-02 15:06  北里闻箫  阅读(134)  评论(0编辑  收藏  举报