2011-05-30 85 views
3

我真的是GIT的新手。我的目标是在PC /笔记本电脑之间同步我的Eclipse项目 - 我认为使用GIT来做这件事是一个好主意。 所以我建立了我的知识库,将它存入Github等。使用Git/Github在PC /笔记本电脑/ WebInterface之间同步我的项目

我写了一个小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/的东西吗? 关于此脚本的一些问题是我必须输入两次密码。

+0

我想git的补充。如果您在提交声明中使用-a,则是多余的 – zode64 2011-05-30 15:50:36

+0

避免密码的最简单方法是使用SSH密钥和ssh代理来保存它。 – 2011-05-31 13:23:38

+0

@Douglas:这是如何工作的? – Fannon 2011-05-31 18:43:58

回答

2

我使用这样的脚本来处理git,这很好,因为您可以在学习更多功能时开发自定义脚本,还有其他工具,但它只是归结为个人偏好。

有一件事我会说,从git的同步是那样简单

git pull 

如果您commiting首先与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 
+0

这意味着,我不应该首先提交任何内容,而只是使用git pull? – Fannon 2011-05-30 14:48:32

+0

Git pull不向我的远程回购提交任何内容。所以这只是为了获得我已经通过其他设备提交的最新状态? – Fannon 2011-05-30 15:28:27

+0

在我的回答中并不清楚,所以更新 – zode64 2011-05-30 15:46:31

0

现在,我想我已经了解了一些关于GIT和我的新Syncro的脚本看起来像:

#!/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 Repositorys是如何工作的: http://gitready.com/beginner/2009/01/21/pushing-and-pulling.html