在工作中发生了几次大规模失败后,我决定在工作中应该进行某种版本控制。我选了git。
cd /path/to/hd/
cd mkdir test.git
cd test.git
以确保它不是裸存储库git init
touch README.txt
创建文本文件git clone /Volumes/Data/git/test/
git checkout -b mybranch
git push origin mybranch
git checkout master
git branch -d mybranch
到目前为止,一切似乎都有效。所以我查找服务器上的文件,但它们保持不变。当我使用GitX打开test.git
时,提交已存在。有变化。但实际文件没有改变。
我做错了什么?
PS。我遵循了这个指南:http://rogerdudler.github.io/git-guide/
答案 0 :(得分:1)
您看到的是使用工作副本推送到存储库的结果。当您使用工作副本推送到回购时,有两种可能的结果。
您现在在服务器上拥有的内容可能是这样的:
A <- master
|
B <- mybranch
在签出master时,由于你没有更改master,当你推送到服务器时没有出错。
因此,当您创建一个将要用作远程的存储库时,您几乎不希望它具有工作副本(即实际签出的文件)。您想要创建一个裸存储库,也可能希望它被共享,如下所示:
git init --bare --shared=true
shared
选项也可以是许多其他设置,有关选项,请参阅git help init
。
我认为你正在寻找的工作流程是
git init --bare --shared=true
git clone /path/to/remote
git checkout -t -b mybranch
git checkout master && git merge mybranch && git push origin master
在远程git push origin mybranch
在远程创建分支mybranch
而不更新主数据。答案 1 :(得分:0)
我不确定,但在推送之前可能git commit
会有所帮助吗?