如何在Mac上设置(GUI)本地版本控制系统?

时间:2011-07-26 15:01:12

标签: version-control

我是网络开发人员。我的公司有一个开发服务器,我们所有人都可以直接工作。我们中只有3人,他们都在不同的项目上工作,所以人们覆盖彼此的工作没有问题。因为我们这么小,所以没有人设置任何版本控制,而且我无法为我们所有人坚持这一点。但是,我最近破坏了我自己的一些代码,无法让它再次运行,这让我想要设置某种版本控制。

以下是我希望如何工作:

  1. 制作dev服务器上存在的项目的本地副本。
  2. 在开发服务器上进行更改。
  3. 每次重大更改后,请提交我的本地副本。
  4. 如果新更改破坏了开发服务器上的代码,则可以从本地副本中获取以前的版本。
  5. 因为我经常一次处理6个或更多文件,所以在进行任何更改之前只能手动创建每个文件的备份是不可行的。

    我查看了GitBox和Versions,但我无法判断其中任何一个是否允许我制作未使用某种版本控制的远程项目的本地副本。

    有没有人对Mac的良好GUI版本控制系统有任何建议,让我能够完成上面概述的内容? (主要问题是步骤#1 - 制作尚未使用版本控制系统的项目的本地副本,并且能够通过单个操作更新本地副本。)

3 个答案:

答案 0 :(得分:1)

恕我直言:只有2个人足以证明该组的源代码控制是合理的。如果其他人不愿意,那么下一个最好的事情就是掩盖你的背后......

在您喜欢的任何系统中设置本地存储库。然后从远程服务器上复制应用程序并将其添加到版本控制。由于其他人可能在您不知情的情况下进行更改,因此您应该通过将本地副本与开发副本进行比较来启动每个编辑会话。

您可能希望查看rcp以保留本地副本与开发副本。

保留两个本地副本(一个是您正在处理的副本以及一个用于合并来自开发副本的更改)可能会有所帮助。只需用开发的文件覆盖本地开发副本中的文件即可。然后检查它们或根据需要合并。这样您就可以在不删除自己的工作副本的情况下,将dev的变化与您的仓库进行完整的比较。

答案 1 :(得分:1)

通过(传输)[http://www.panic.com/transmit/]提供的映射,您可以轻松地完成您所需的工作。

为您提供GUI界面的一个选项就是每次手动复制文件,然后在每次要存储一组更改时使用GitBox创建新的提交。这样可行,但很快就会变得乏味。繁琐的东西被忽视,所以不是最好的选择。

更好的解决方案是设置一个可以为您复制和提交的小脚本。请查看以下内容作为示例:

#!/bin/bash

### SETUP:

### Set the path to the remote mapped directory
SOURCE="/Volumes/your/mapped/folder/path"

### Set the path to your local folder (this must already exist)
REPOS="/Users/your-username/your-storage-folder"


### MAIN:

### Move into the respository directory
cd $REPOS

### Initialize the repository if it doesn't exist
if [ ! -d "${REPOS}/.git" ]; 
    then 
    git init
fi

### Now copy down the files
rsync -a --delete --exclude '.git' $SOURCE/ $REPOS/

### Add all the changes to git staging
git add .

TIMESTAMP=`date`

### Now commit the changes
git commit -am "Committed: $TIMESTAMP"

假设您在Mac上安装了git,那么如果您:

,则应该可以使用
  • 创建一个带有“.command”扩展名的新文本文件(例如“archive-site.command”)并将该代码粘贴到其中。
  • 将“SOURCE”和“REPOS”路径更改为计算机上实际路径的值。
  • 使用chmod u+x archive-site.command允许它可执行。

从那里,您只需在Finder中双击该文件,它就会将您的本地文件夹与服务器目录的内容同步,然后在存储库中进行新的提交。这是基本的,有点非正统,但它会给你一定程度的版本控制保护,而不会有太多的麻烦。

答案 2 :(得分:0)

如果我遇到你的情况(并且无法在服务器上安装版本控制系统),我会将你建议的方法改为更像这样的东西:

注意:我意识到你在询问GUI,但我也会在这里输入你可以在终端中使用的命令。这实际上很容易。只需几分钟的练习和一点点备忘单,您可能会发现这样做更容易/更快。我还假设你的开发网络服务器是linux / unix类型,你可以用类似的方式设置你的mac到服务器网页。可以通过内置的网络共享功能,也可以使用MAMP

  1. 在我的Mac上创建一个空的本地工作目录,用于进行开发工作。

  2. 使用以下命令从本地工作目录的终端应用程序初始化git存储库:

    git init
    
  3. 将dev服务器中的所有代码下拉到本地工作目录。我会使用终端的rsync命令执行此操作。如果您在Mac上将驱动器服务器安装为驱动器,则命令将类似于:

    rsync -a /Volumes/{DriveName}/{path}/{to}/{project-folder} /Users/{yourUserName}/projects/{project-folder}
    

    如果未安装驱动器,您仍可以使用rsync。它只需要采用不同的设置。如果您需要,还有其他资源可以帮助您。当然,您也可以使用计划在工作流程中传输文件的任何其他内容。

    作为一个更直接的问题,我不知道git或其他版本控制软件能够从不是另一个存储库的远程位置提取文件。我认为你将不得不用其他东西做这一步。

  4. 将所有文件添加到git,以便它知道跟踪它们,然后将它们提交到存储库中:

    git add .
    git commit -m "Put a commit message here"
    
  5. 使用内置的Mac网络共享或类似MAMP的内容,在Mac上而不是在开发服务器上对文件进行任何更改,以查看更改。

  6. 添加所有更改并使用相同的两个命令再次提交:

    git add . 
    git commit -m "A new message about what changed"
    
  7. 重复步骤5和6,直到您想要将某些内容发送回开发服务器以进行更深入的测试。

  8. 将代码推送到开发服务器。然后返回到步骤5并继续进行更改并提交,直到您准备好再次向上推回dev。

  9. 这种方法的好处:

    • 在本地处理版本控制比尝试每次复制文件然后再版本要容易得多。这样做会需要额外的步骤,这意味着更有可能发生错误,或者你不会按照自己的意愿去做。

    • 它应该比在dev服务器上工作更快。

    • 即使您未连接到开发服务器,也可以工作。 (如果你的机器是某种类型的macbook,你可以在任何地方工作。)

    • 在代码不工作的状态下,您不太可能拥有开发服务器。

    • 没有人会看到您的代码,除非它处于您准备好让他们看到的状态。

    此工作流程提供基本版本控制,使您可以简单地回滚到以前的版本。您可以使用分支,标记等进行更多操作......但是我所提出的内容将帮助您开始使用基础知识,并在您提交时经常覆盖您。在GUI方面,你提到了GitBox。我以前使用它并喜欢它,但我发现在命令行上使用命令会更容易,更快捷。