首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多台机器上运行苹果XCode (如何随身携带我的项目?)

在多台机器上运行苹果XCode (如何随身携带我的项目?)
EN

Stack Overflow用户
提问于 2017-12-08 03:17:15
回答 2查看 466关注 0票数 1

我主要在Mac桌面上开发iOS应用程序,但有时我会带着MacBook Air笔记本电脑旅行,我经常需要在旅途中继续开发应用程序。

当然,也可以只将文件scp到我的笔记本电脑上,对其进行处理,然后将其scp回桌面,或者使用U盘。但我必须相信,成千上万的其他人也有类似的需求。有没有一种简单的方法可以共享源代码控制,并在旅途中签入/签出?

在多个设备上进行流畅、单一开发人员跟踪开发的最佳实践是什么?

EN

回答 2

Stack Overflow用户

发布于 2017-12-08 04:26:41

我不确定这个问题是否属于这里,但嘿,我自己问的,所以这些就是我的实践。我不会称它为“最佳”实践,只是我多年来尝试过的东西:

Git

使用git存储库。我猜你已经在使用它了,如果没有,创建一个存储库(在Bitbucket中,你可以免费拥有私有repos )。即使您使用其他方式同步您的计算机,也要这样做。

有许多方法可以使用git来保持您的台式机和笔记本电脑同步。当不容易执行正确的提交时(例如,您正在进行重大更改,您不希望只在无意义的提交日志下提交所有内容),您可以使用预先确定的消息(如** SYNC ** )编写一个丢弃提交,然后将其推送到您的远程。

在您的笔记本电脑中,拉入并软重置以获得提交前的更改:git reset HEAD^

当您返回到桌面时,对上次提交的git reset --hard HEAD^执行硬重置并提取更改。

根据我的经验,不是最好的解决方案:台式机/笔记本电脑的过渡应该是快速和毫不费力的。仅仅因为您需要更改机器,就想着要提交什么以及如何提交是一件痛苦的事情。

弹性同步

使用Bittorrent Resilio Sync在台式机和笔记本电脑之间同步多个文件夹(如果您对安全性有疑虑,可以将其配置为只使用LAN )。

它工作了一段时间,非常好,但不知何故它坏了,我不想调查原因,因为我怀疑它稍后会再次坏掉。

Dropbox

当我懒惰时,使用Dropbox同步两台计算机。它工作得很好。如果你信任Dropbox的话。

其他云提供商也是如此(除了iCloud,它的速度非常慢)。

SSD卡

直接在SSD卡中工作。这已经足够快了;只要确保你没有把构建写到卡片上就行了。显然,两台计算机都需要一个读卡器。这不是一个长期的解决方案。

Mac应用程序

专用的mac应用程序可以在机器之间同步文件夹。它们都没有完美的工作。有些太复杂了,或者没有维护,或者是糟糕的windows端口,等等。我会买一个简单的,它能正常工作,并能清楚地传达它在引擎盖下的作用。

Rsync

使用rsync使项目文件夹在两台计算机上保持同步。

现在,我在macOS共享文件夹之上使用rsync解决方案(如果您愿意,可以通过SSH使用它)。

我在项目文件夹中为每个项目提供了几个shell脚本:

代码语言:javascript
复制
project-name->laptop.sh
project-name->desktop.sh

其中"laptop“和"desktop”是我的机器名称。当我需要使用笔记本电脑时,我只需要挂载共享文件夹(通常我只需要打开笔记本电脑)并运行project-name->laptop.sh。当我回来的时候,我会做相反的事情,我运行project-name->desktop.sh。简单和容易。您可以将每个脚本仅放在相应的机器中,以避免错误。

示例:

代码语言:javascript
复制
PROJECT_DIR=/Volumes/julian/path/to/project

if [ ! -d $PROJECT_DIR ] ; then
    echo "Mount $PROJECT_DIR first."
    exit 10
fi

if [ ! -x ./sync.sh ] ; then
    echo "Must run from /local/path/project directory"
    exit 11
fi

./sync.sh $PROJECT_DIR project-name $@

所有项目的sync.sh都是一样的,类似于:

代码语言:javascript
复制
#!/bin/sh
#
# sync.sh <project-folder> [-no]
#
SOURCE_DIR=$1 && shift
TARGET_DIR=$1 && shift

function usage {
    echo $0 '<project> [-no]'
}

if [ "$SOURCE_DIR" == "" ] ; then
    echo 'Missing source'
    usage
    exit 1
fi

if [ "$TARGET_DIR" == "" ] ; then
    echo 'Missing target'
    usage
    exit 2
fi

rsync $@ -va --delete         \
      --exclude='*.pyc'       \
      --exclude='*.db'       \
      --exclude='__pycache__' \
      --exclude='.DS_Store'   \
      --exclude='._*'         \
      ${SOURCE_DIR}/ \
      ${TARGET_DIR}/

我使用了一些我已经忘记的其他解决方案。对我来说,rsync是最简单、最稳定的选择。

票数 3
EN

Stack Overflow用户

发布于 2017-12-08 04:30:08

使用与SourceTree相结合的免费BitBucket帐户。除了可以在多台计算机上使用之外,您还可以免费进行版本控制和备份。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47702235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档