编译机器的Git工作流程

时间:2013-07-01 18:55:24

标签: git

我处理大量需要很长时间才能编译的软件。我经常发现自己在本地开发,然后在一台强大的远程机器上编译/运行。 Git使这一切变得非常简单:我在本地提交然后在远程上的git repo上拉分支。不幸的是,我在编写代码时犯了错误,经常发现自己正在修改拼写错误以及编译过程中出现的其他小错误。这些微提交使我的日志变得混乱和混乱。我正在寻找一种方法,我可以做这样的事情:

#local> git commit -m "My useful commit message and the bulk of my commit"

#remote> git pull local development_branch
#remote> *compile my code and get a stupid error*

#local> *fix error*
#local> git add *fixed file*
#local> git commit --amend

#remote> *force an update to remote that causes it to look like master*

所以,我正在寻找一个执行最后一步的命令,即在我修改提交后更新我的遥控器看起来像我的本地分支。我这样做的当前方式是做

git reset --hard HEAD~1
git pull local development_branch

这很有效,但看起来真的很难看。有没有更好的方法来完成我想要做的事情?

3 个答案:

答案 0 :(得分:5)

不是“回到过去”然后重新拉动,而是直接重置到遥控器的位置:

git fetch local
git reset --hard local/development_branch

答案 1 :(得分:0)

在提交之前,您可以使用precommit hook来测试可兼容性(即使是一个单词吗?)。挂钩是stored in .git/hooks,是shell脚本。

答案 2 :(得分:0)

您可以使用

#remote> git pull -uf local development_branch:development_branch

它将覆盖远程对手的当前分支(即development_branch),即使它不是快进更新。

更新:

-u|--update-head-ok会授予您更新分支,即使它是HEAD

似乎fetch会留下一个脏索引,因此我将fetch替换为pull