2

我正在开发一个需要很长时间才能编译的大型软件。我经常发现自己在本地开发,然后在强大的远程机器上编译/运行。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

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

4

3 回答 3

5

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

git fetch local
git reset --hard local/development_branch
于 2013-07-01T18:57:59.860 回答
0

您可以在提交之前使用预提交挂钩来测试可编译性(甚至是一个词吗?)。钩子存储在 .git/hooks中,是 shell 脚本。

于 2013-07-01T22:48:46.660 回答
0

您可以使用

#remote> git pull -uf local development_branch:development_branch

它将development_branch被远程副本覆盖当前分支(即),即使它不是快进更新。

更新:

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

似乎fetch会留下一个脏索引,所以我替换fetchpull.

于 2013-07-02T01:09:30.747 回答