- 对于每个站点都要创建新的目录并进行初始化吗?
- 在干净和新的驱动器上进行一次初始化,每个目录代表不同的站点?
- 还有其他更好的方法吗?
我向所有人征求建议,特别是如果您曾经因为第一个设置它的人问“为什么”而咒骂过他。
我向所有人征求建议,特别是如果您曾经因为第一个设置它的人问“为什么”而咒骂过他。
仓库的结构不是关于“站点”(你想说什么都可以)的问题,而是关于“项目”的问题。
作为经验法则:
在每个仓库内,使用branches来组织工作,并且不要混淆分支与组织不同软件堆栈的手段:分支用于组织一个仓库中的工作(即一个软件的不同开发线路)。其中一种分支模型(在SO上似乎很受欢迎)是这样的:
感到困惑?好奇吗?阅读explanation...
如果你更喜欢将所有代码库放在一个git repo中,或者单独放在各自的repo中,这是一种偏好的问题。虽然如此,我的偏好是每个代码库/站点有一个单独的git repo。这样你就可以在不用检出其他repo的情况下只工作于一个站点,并且你不必担心其他站点的更改会妨碍你提交到任何一个给定站点的提交。
我建议你在服务器上创建一个专门用于git的目录。
我在由我的公司运营的服务器上使用了目录名为/git
,用于与工作相关的事项,而对于个人使用,我还在私人Web服务器上创建了一个名为/git
的目录。
在你的/git目录中,你可以创建裸仓库来管理你的项目。
ssh git@myserver
cd /git
mkdir Project7sName.git
cd Project7sName.git
git init --bare
echo "Take over the world project" > description
然后您可以在服务器上安装类似GitList的软件,以便更好地查看软件更改,例如删除用红色表示,插入用绿色表示。
Git是一种分布式版本控制系统。因此,您可能希望在多个站点执行此操作。优点是,如果您随时失去其他站点的连接,您可以继续无间断地工作。此外,如果您的硬盘发生故障或出现任何类似问题,您会有多个数据副本。
如果您希望人们始终推送到一个站点,则可以将某个站点指定为主站点,或者您的工作实践可能是人们将所有服务器站点都推送。
请利用诸如下列命令:
git remote add siteA ssh://git@siteA/git/repositoryX.git
git push siteA master
git push siteB master
git touch .gitignore
git add .gitignore
git commit -m Empty
rm *
unzip ...
git add *
git commit -m "Archived state 2013 week 18"
git tag ArchivedState2013week18
git blame
来了解代码的某些行是何时引入的。