【问题标题】:Use Git / Github to sync my Projects between PC / Laptop / WebInterface使用 Git / Github 在 PC / 笔记本电脑 / WebInterface 之间同步我的项目
【发布时间】:2011-12-13 03:39:43
【问题描述】:

我是 GIT 的新手。我的目标是在 PC / 笔记本电脑之间同步我的 Eclipse 项目——我认为为此使用 GIT 是一个好主意。 所以我已经建立了我的存储库,把它放到 Github 等等。

我写了一个小的 Bash 脚本,它应该为我做同步工作。它似乎有效,但我不确定这是最好的方法:

#!/bin/bash          
# Github Syncro Script

# SoftwareProjekte
cd "D:\Projekte\Software Projekte"
git add . 
git commit -a -m "Auto-Git-Backup $(date "+%d.%m.%Y %H:%M "|sed -e ' s/\"/\\\"/g' )"
git push -u origin master
git pull

这是个好主意吗?我应该改用http://code.google.com/p/git-sync/ 之类的东西吗? 这个脚本让我烦恼的是我必须输入两次密码。

【问题讨论】:

  • 我认为 git add 。如果您在提交语句中使用 -a 是多余的
  • 避免密码的最简单方法是使用 SSH 密钥和 ssh-agent 来保存它。
  • @Douglas:这是怎么工作的?
  • 其实我不确定 git 如何与 Windows 上的 ssh 代理交互。您可能需要尝试使用 putty 的代理或 cygwin 的 ssh-agent 来查看它们中的任何一个是否可以工作。

标签: git bash synchronization


【解决方案1】:

我使用这样的脚本与 git 一起工作,这很好,因为您可以在了解更多功能时开发自定义脚本,还有其他工具,但这完全取决于个人喜好。

我想说的是,从 git 同步就像

git pull

如果您首先承诺使用 git,则应该进行拉取以降低本地副本成为旧版本并产生冲突的风险。

类似这样的:

cd "D:\Projekte\Software Projekte"
git pull
git add . 
git commit -a -m "Auto-Git-Backup $(date "+%d.%m.%Y %H:%M "|sed -e ' s/\"/\\\"/g' )"
git push -u origin master

【讨论】:

  • 这意味着,我不应该先提交任何东西,而只需使用 git pull?
  • Git pull 不会向我的远程仓库提交任何内容。所以只是为了获取我已经被其他设备提交的最新状态?
  • 您的正确 git pull 没有提交,但您的脚本正在提交可能已被其他设备更新的 repo,您​​最好拉入这些更改以检查所有内容是否是最新的提交
  • 好的,谢谢!这是一个很好的提示!另一个问题:我仍然需要为这个脚本输入密码 2-3 次。有没有办法让它变得更智能?
  • 我可能错了,但我认为如果您生成不需要密码的 SSH 密钥,那么您不应该收到此请求,我不明白
【解决方案2】:

现在我想我已经了解了一些关于 GIT 的知识,我的新 Syncro-Script 看起来像:

#!/bin/bash          
# Github Syncro Script

git pull
git add --all
git commit -m "Auto-Git-Backup $(date "+%d.%m.%Y %H:%M "|sed -e ' s/\"/\\\"/g' )"
git push -u origin master

git add --all 似乎比commit -a 好,因为它会添加新文件并删除已删除的文件。

看起来我必须先拉取(并将我的远程更改与我自己的合并),然后才能推送我的本地更改。 (发生冲突时)

这对吗?

顺便说一句:这篇文章/图片对我理解 GIT 存储库的工作方式有很大帮助: http://gitready.com/beginner/2009/01/21/pushing-and-pulling.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 2023-01-18
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    相关资源
    最近更新 更多