我有一些在 git 中工作的功能,我正在尝试移植到 Ngit。我的 git 脚本如下所示:
git add .
git commit -a -m "Auto Commit"
git fetch
git rebase
git push
(我省略了冲突处理细节,它们在这里不相关。)
将此移植到 Ngit,我最终得到以下结果:
// Open a connection to the repository
Git _git = Git.Open(MyRepoPath);
// Add all new files to the commit.
_git.Add().AddFilepattern(".").Call();
// execute the commit, but don't push yet.
_git.Commit().SetMessage(CommitMsg).SetAll(true).Call();
// fetch all remote files
_git.Fetch().Call();
// rebase
_git.Rebase().SetUpstream("FETCH_HEAD").Call();
// push all changes
_git.Push().Call();
看起来几乎一样......我看到的唯一区别是,在我的 git 服务器上,每次 Ngit 程序运行时,都会有一个新的提交被推送到存储库。当我只是在同一台机器上通过 msysgit 运行脚本时,情况似乎并非如此。(即,如果没有文件被更改,则服务器上不会生成任何内容。)
我在这里做错了吗?任何关于只有在 rebase 后本地到远程有任何不同时如何推送的聪明想法?
谢谢!