转自:http://blog.csdn.net/ithomer/article/details/7530042
前面三篇介绍了关于 Git 的概念、命令使用、命令查询等理论知识
本文主要介绍在使用Git 过程中遇到的几个问题及其解决方案
一、Git 界面GUI和命令行Command两种操作方式
Git 进行代码版本管理时,有两种操作方式:图形界面GUI 和 命令行Command
图形界面GUI:有平台限制,目前仅支持Windows系统,Linux(Unix)都是命令行模式,并且图形界面每次提交好像Display显示文件数有限制(如:最大显示20000个文件)
命令行Command:没有平台限制,Windows、Linux(Unix、Mac OS X)下都支持,通过 gid add dir/files 添加文件,没有文件数限制
下面详细介绍 Git 管理和操作的两个方式:
1、图形界面GUI
首先,下载Windows下的Git图形界面工具:msysgit 或 官方下载
接着,安装 msysgit ,如下载最新的 Git-1.7.10-preview20120409.exe 后安装,操作方式有Git GUI 和 Git Bash两种,默认为 Gui Bash Only
然后,安装完后,在开始 —> 所有程序 —> Git 中,有 Git Bash 和 Git Gui 两个图标,点击启动 Git Gui 界面如下:
msysgit 图形工具,可以创建新的版本库(本地)、克隆已有版本库(远程)、打开已有版本库(本地或远程)
例如:克隆已有的版本库(远程),如 克隆下载 linux-kernel-source 步骤:
a、 点击“克隆已有版本库”,依次输入远程版本库(xxx)和本地目录(xxx),如下图
2、命令行Command
a、Git 远程下载
git clone git://git.kernel.org/pub/scm/ project_path
1)例如:下载 linux-kernel-source,Git 命令如下
git clone https://code.google.com/p/linux-kernel-source/ /E/Fruit/code_google/linux-kernel-tmp
2)例如:下载 Linux 内核 git.kernel.org
git clone git://git.kernel.org/pub/scm/ /home/homer/Linux-kernel-3.3.4
b、 Git 本地上传
添加新文件:git add dir/files
提交文件:git commit -m 'add xxx.txt'
上传文件:git push
Git命令更多实例,请见我在google code上传的两个开源项目:linux-kernel-source 和 android-source-homer
二、Windows下google code git的无密码登录
每次使用git push代码到google code的时候总要输入用户名及密码,很是麻烦:
说明:上文提示可以看到,由于Git版本升级,push.default默认参数值从“matching”改成了“upstream”,并且给出了两种修改方案:
1) git config --global push.default matching —— 维护先前的行为(matching)
2) git config --global push.default upstream —— 引进新的行为(upstream)
以上两条命令,根据自己需求设置一条即可,以后此提示信息就不会再弹出。
幸运的是,google code在项目管理页面提供了保存认证信息的方法:
Option 2 即为无密码登录的配置。不过这个配置是针对Linux系统的。那么windows下有没有类似于.netrc的配置呢?
答案是肯定的。完成windows下.netrc的配置需要两个步骤:1.新建HOME环境变量;2.新建_netrc文件,并输入配置信息。
1. 环境变量
If you are using Windows 7
run the cmd type this:
setx HOME %USERPROFILE%(注意:%USERPROFILE% 才是当前默认的用户目录)
and the %HOME% will be set to 'C:\Users\"username"'
例如:用户名为 homer,则 %HOME% will be set to 'C:\Users\homer'
2. 配置_netrc
windows下的 .netrc 文件要命名为 _netrc 具体步骤:
首先,在【1、环境配置】指定的%HOME%目录(C:\Users\homer)中新建一个名为 _netrc 的文件
然后,在新建的 _netrc 的文件中,输入以下内容:
machine code.google.com login xxx@gmail.com password xxx [generated googlecode.com password]
其中,password 是code.google.com自动生成的,在 Profile —> Settings —> GoogleCode.com Password(https://code.google.com/hosting/settings)
Git Push 不需要输入密码上传效果图:
推荐参考:StackOverflow
三、 google code托管开源项目https://code.google.com/hosting/settings被墙的解决方法
方法一:
很多人在使用 code.google.com时, 都需要一个code.google.com的密码, 这个密码是从https://code.google.com/hosting/settings 网址获得, 但大多时候您会发现这个网址不能打开,通过实践分析的原因可能是以下原因:
1. 国家屏蔽了www.google.com 的网址IP地址
2. 由于国家屏蔽, google.com被迫更改了自己的IP地址。
解决办法:
1.首先在命令行 ping www.google.com ,查出当前google.com的IP地址。
2.修改c:\windows\system32\drivers\etc\hosts 文件
74.125.153.104 为你当前Ping时看到的IP。
追加以下内容:
74.125.153.104 code.google.com
74.125.153.104 encrypted.google.com
74.125.153.104 suggestqueries.google.com
74.125.153.104 mail.google.com
74.125.153.104 groups.google.com
74.125.153.104 groups.google.com.hk
74.125.153.104 docs.google.com
74.125.153.104 docs0.google.com
74.125.153.104 docs1.google.com
74.125.153.104 spreadsheets.google.com
74.125.153.104 spreadsheets0.google.com
74.125.153.104 webcache.googleusercontent.com
74.125.153.104 sites.google.com
74.125.153.104 talkgadget.google.com
74.125.153.104 clients1.google.com
74.125.153.104 clients2.google.com
74.125.153.104 clients3.google.com
74.125.153.104 clients4.google.com
方法二:
刚开始的code.google.com都可以访问到,几乎所有页面都可以访问,唯独查看svn账号密码的页面(https://code.google.com/hosting/settings )就总是“连接被重置”
因为众所周知的原因,我朝大约是不想让子民向美帝提交代码,所以封杀了这关键性的一页。通过百度查询,发现他们的解决方法虽然都是改hosts(方法一),但具体怎么改,说的不太对,我自己验证了一下,发现下面的方法比较靠谱
如果你已经有了翻方法,那翻访问就行了,我的方法是针对不翻的情况下的。
网上有人说让我们先ping一下www.google.com和code.google.com然后去拿这个结果中的IP去设置hosts,可能会不行!!!
为什么呢?因为我们的ping也被墙给阉割过了,比如说ping www.google.com,显示的结果可能是Ping code.l.google.com的,被篡改了。
我们要得到和美帝一样的ping结果怎么办呢?
很简单,先在google搜索online ping,找到第一个或者你看着顺眼的一个网站打开,用里面的在线ping工具来ping code.google.com,相当于用了国外的服务器来ping,所以结果是靠谱的。
步骤总结:
1、去google搜online ping,在英文google搜;或直接打开 ping.eu/ping
2、在提供在线ping的国外网站上,输入:ping code.google.com ,取得ip
3、改hosts文件,将刚才ping到的ip设置和code.google.com配对。(最好清空一下dns缓存,命令行输入ipconfig /flushdns)
参考推荐:
google code托管开源项目https://code.google.com/hosting/settings被墙的解决方法