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



我是一名web开发人员。我的公司有一个开发服务器,我们所有人都直接在上面工作。我们只有3个人,每个人都在做不同的项目,所以大家互相覆盖工作是没有问题的。因为我们是如此的小,没有人建立任何形式的版本控制,我也不能坚持要求我们所有人都这么做。然而,我最近弄坏了我自己的一些代码,无法使其再次工作,这使我想设置某种版本控制。

我希望它是这样工作的:

  1. 在开发服务器上创建我的项目的本地副本。
  2. 在开发服务器上进行更改。
  3. 每次重大更改后,提交到我的本地副本。
  4. 如果新的更改破坏了开发服务器上的代码,可以从本地副本中抓取以前的版本。

因为我经常同时处理6个或更多的文件,所以在进行任何更改之前手动创建每个文件的备份对我来说是不可行的。

我已经看过了GitBox和版本,但我无法告诉他们中的任何一个是否允许我在本地复制一个不使用某种版本控制的远程项目。

有没有人有好的mac GUI版本控制系统的建议,让我完成我上面概述的?(主要问题是步骤#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"one_answers"REPOS"路径的值更改为您机器上的实际路径。
  • 使用chmod u+x archive-site.command允许其可执行。
从那里,你所要做的就是在Finder中双击该文件,它将同步你的本地文件夹与服务器目录的内容,然后在存储库中进行新的提交。它是基本的,有点不正统,但它将为您提供一定程度的版本控制保护,而不会带来太多麻烦。

我的意思是:仅仅2个人就足以证明一个小组的源代码控制。如果别人不愿意,那么最好的办法就是躲起来。

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

您可能需要查看rcp以维护您的本地副本和开发副本。

保持两个本地副本可能是有帮助的,一个是您处理的,另一个是您用来合并来自开发副本的更改的。只需将本地开发副本中的文件覆盖为开发文件。然后根据需要检入或合并它们。这将允许你在不杀死你自己的工作副本的情况下,将dev中的更改与你的repo进行完整的比较。

如果我是您的情况(并且无法在服务器上安装版本控制系统),我会将您提出的方法更改为以下内容:

注意:我知道你问的是GUI,但我也会在这里放入你可以在终端中使用的命令。这其实很容易做到。只需要几分钟的练习和一些小抄,你可能会发现这样做更容易/更快。我也假设你的开发web服务器是linux/unix类型,你可以设置你的mac服务器网页以类似的方式。要么通过内置的web共享功能,要么通过像MAMP这样的东西。

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

  2. 从终端应用程序在本地工作目录中初始化一个git存储库:

    git init
    
  3. 将所有代码从开发服务器拉到本地工作目录。我将在终端上使用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上对文件进行任何更改,而不是在开发服务器上使用内置的Mac Web Sharing或类似MAMP的东西来查看更改。

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

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

  8. 将代码推送到开发服务器。然后回到步骤5,继续修改和提交,直到您准备好再次推回到开发阶段。

这种方法的好处:

  • 在本地处理版本控制比每次复制文件然后版本要容易得多。这样做会需要额外的步骤,这意味着更有可能出现错误,或者你不会像你应该做的那样做。

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

  • 你可以工作,即使你没有连接到开发服务器。(如果你的电脑是某种型号的macbook,你可以在任何地方工作。)

  • 您不太可能让开发服务器处于代码无法工作的状态。

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

此工作流提供了基本的版本控制,使您可以简单地回滚到以前的版本。你可以用分支、标签等做更多的事情。但我列出的内容会让你从基础开始,并在你提交的时候涵盖你。在GUI方面,您提到了GitBox。我以前用过,也很喜欢它,但我发现在命令行上使用命令对我来说更容易、更快捷。

最新更新