Open xzhuz opened 5 years ago
更新远程分支
git branch -m old_branch new_branch
# Rename branch locally
git push origin :old_branch
# Delete the old branch
git push --set-upstream origin new_branch
或者git push -u origin new_branch
# Push the new branch, set local branch to track the new remote
https://www.meisen.pro/article/bcd3edec07234b27af5d9f501d2a2431
git cherry-pick
cherry-pick
的意思是将不同分支上面的提交合并到当前分支上来。比如目前你在并行开发多个分支,你在一个分支上修复了一个bug,这是你发现其他所有的的分支都有这个bug。这个时候,你就可以使用cherry-pick
指令将这个commit
合并到其他分支而不会搞乱其他的文件或是提交。让我们想象一个可以使用该命令的场景。我有两个分支,并且我想要把b20fd14: Cleaned junk这次提交使用cherry-pick的方法放入到另一个分支。
我切换到我想要放入该提交的分支,然后运行如下命令:
git fsck 检查都是的提交
fsck -- file system check
这里你可以看到丢失的提交,你可以使用git show [commit_hash]来查看这些提交所包含的改动或者是使用git merge [commit_hash]来恢复它。
git fsck比reglog有一个优势。比如你删除了一个远端分支并且克隆了仓库,使用fsck命令你可以搜索并恢复该远端分支。
git stash
保存尚未提交的改动
查看暂存列表
恢复改动
恢复指定暂存
恢复改动并删除当前暂存
git reflog
比方说,你提交了一个你不想要提交的代码,最后你通过使用硬重置(hard reset)使其回到了之前的状态。稍后,你意识到,在这个过程中你丢失了一些其他的信息,并想要退回或是至少能看一眼。git reflog命令可以帮你做到这一点。
一个简单的git log命令,显示你最近的提交信息,以及上一次,再上一次的提交信息,以此类推。
而git reflog显示的是所有head移动的信息。记住,它是在本地的,而不是你仓库的一部分,不会包含在推送(push)和合并中(merge)。
git blame
查看谁改动我的代码
git add -p
暂存一个文件的部分改动
你对一个文件进行了多次修改并且想把他们分别提交。这种情况下,你可以在添加命令(add)中加上-p选项
输入y来缓存该块 输入n不缓存该块 输入e来人工编辑该块 输入d来退出或进入下一个文件 输入s来分割这个块
转载请说明出处