[译]git的那些flag】的更多相关文章

git add -p console有一个交互式的界面(如下图),让你一个一个文件的选择是add还是不add.注意这些文件必须是tracked过的, 也就是说如果你的新的文件从来没有add过,那么他不会出现在这个界面中. y - 表示要添加到stage n - 不要添加到stage q - 退出 ? - 为帮助 git commit -a 把已经tracked过的, 但是后来修改过却没有add的文件也一并commit到HEAD中. 这样我们就不需要在commit之前先add了 git log -…
格式化log输出 oneline --oneline标记将每个commit压缩成一行. 默认情况下显示一个commit ID和commit描述的第一行. 输出如下: 0e25143 Merge branch 'feature' ad8621a Fix a bug in the feature 16b36c6 Add a new feature 23ad9ad Add the initial code base decorate 许多时候知道commit是和哪一个分支或tag关联的是非常有用的.…
push就是把你本地仓储的commit传到远程仓储中去. 用法 git push <remote> <branch> push指定的分支到<remote>中去.  如果对于目标仓储来说不是一次fast-forward的merge, push会失败. 需要先git pull. git push <remote> --force 效果基本上和前一个命令相似, 但是他不管是不是fast-forward的merge都会push成功. 不建议使用这个命令. git p…
git pull把git fetch和git merge压缩成了一条命令. 用法 git pull <remote> 作用和git fetch <remote> && git merge origin/<current-branch>一样. git pull --rebase <remote> 和上面的命令类似, 但是不是使用git merge合并远程分支和本地分支, 而是使用git rebase合并. 讨论 下图解释了pull的过程. 通过…
git fetch从远程仓储导入commit到你的本地仓储. 这些fetch到的commit是做为一个远程分支存储在你本地的. 这样你可以在集成这些commit到你的项目前先看看都有些什么修改. 用法 git fetch <remote> 获取远程仓储所有的分支. git fetch <remote> <branch> 获取远程仓储指定的分支 讨论 当你想看看其他人都做了些什么工作的时候你可以使用fetch. 因为fetch到的内容是做为一个remote分支的形式展现出…
git remote命令让我们可以创建, 查看, 删除一个到其他仓储的连结. 下图展示了我们的本地仓储有两个remote连接, 一个是中央仓储, 一个是其他开发者的仓储. 除了使用完整的url指向他们, 还可以通过别名来执行他们. 一般情况下origin就是我们的中心仓储的别名. 用法 git remote 列出来你的仓储有哪些远程连接. git remote -v 和上面的命令类似, 但是他列出了每个连接的url地址. git remote add <name> <url> 创建…
用法 git reflog 显示整个本地仓储的commit, 包括所有branch的commit, 甚至包括已经撤销的commit, 只要HEAD发生了变化, 就会在reflog里面看得到. git log只包括当前分支的commit. git reflog --relative-date 显示相对时间的commit纪录. 讨论 每一次当前HEAD发生改变(包括切换branch, pull, 添加新commit)一个新的纪录就会被添加到reflog. 例子 运行git reflog 0a2e35…
使用rebase -i会在终端出现一个交互页面. 在这个交互页面中我们可以对要rebase的commit做一定的修改. 用法 git rebase -i <master> 把当前的分支的commit放在<base>后面, -i会打开一个编辑器, 在这你可以为每一个commit输入一个命令, 这个命令决定了如何把单个的commit传输到new base. 还可以改变commit列表的顺序. 讨论 大多数开发者喜欢在merge一个分支到master的时候使用rebase -i打磨我们这…
rebase就是重新定义你分支的起点, 分支上的commit将生成对应的新的commit并放在你指定的新的起点commit后, 分支上的老commit将被删除. rebase就是将你的分支从一个commit移动到另一个commit作为起点. 用法 git rebase <base> 将base做为你当前分支的新起点, 这个<base>可以是任何一种commit引用(如ID, brand名, tag, HEAD~N). 讨论 rebase的主要目的就是保持project histor…
git commit --amend命令用来修复最近一次commit. 可以让你合并你缓存区的修改和上一次commit, 而不是提交一个新的快照. 还可以用来编辑上一次的commit描述. 记住amend不是修改最近一次commit, 而是整个替换掉他. 对于Git来说是一个新的commit. 用法 git commit --amend 合并缓存区的修改和最近的一次commit, 然后用生成的新的commit替换掉老的. 如果缓存区没有内容, 那么利用amend可以修改上一次commit的描述.…