我处理大量需要很长时间才能编译的软件。我经常发现自己在本地开发,然后在一台强大的远程机器上编译/运行。 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
这很有效,但看起来真的很难看。有没有更好的方法来完成我想要做的事情?
答案 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
。