转自: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被墙的解决方法
相关推荐
Git实战IDEA操作详解 Git是一款分布式版本控制系统,它在软件开发中扮演着至关重要的角色,帮助团队协作和代码管理。IntelliJ IDEA(简称IDEA)是广受欢迎...请参考《Git实战操作IDEA实战.pdf》获取更详细步骤和示例。
Python自动化运维实战案例源码(20个案例)Python案例源代码下载实战演练,包括:difflib 比对两个文件的区别用html高亮展示类似于git,dns操作python,fabric高效的ssh远程服务库,filecmp文件内容比对,func模块...
Git是分布式版本控制系统,它使得开发者能够高效地协作并跟踪代码变更。以下是对Git相关资源的详细解析: ...Git Resource压缩包可能包含了教程、命令参考、实战示例等内容,这些都是深入理解和掌握Git的重要资源。
9. **实战案例**:项目可能提供了针对特定场景的示例,如模拟攻击、漏洞复现,或是如何防御针对Git的攻击。 10. **学习资源**:GitHack-master可能还包含了教程、文档或链接,帮助用户深入了解Git的高级特性和最佳...
下面通过示例来具体说明Git的分支管理: 1. **创建分支**: - 使用`git branch <branch-name>`创建新分支。 - 使用`git checkout <branch-name>`切换到新分支。 2. **提交文件**: - 在开发分支上完成工作后,...
- **综合示例**:书中提供了多个实际项目中的例子,帮助读者理解如何在不同场景下应用Git的各种命令和技术。 - **配置目标**:介绍了如何根据不同的需求配置Git,例如设置默认分支名称、启用颜色支持等。 #### 七、...
Git作为一种强大的版本控制系统,不仅提供了基础的操作命令,还具备一系列独特的特性,如高效的分支管理、灵活的合并与重定位等。通过学习和掌握Git的基本命令及工作流程,开发者可以有效地协作开发,提高工作效率,...
#### 四、实战应用示例 **1. 补打标签** - **命令**:`git tag -a [标签名] [提交对象的校验和]` - **说明**:为之前的某个提交打标签。 - **示例**:假设你想要为提交对象 `9fbc3d0` 打一个标签 `v0.1.1`,则可以...
接着,我们可以实现 EVCacheClient 中的方法,例如 `get`、`put` 和 `delete`,以操作缓存数据: ```java public class EVCacheClient { // ... public String get(String key) { return evCache.get(key); } ...
总结,jQuery Mobile官方Git资源为开发者提供了全面的学习材料和实战案例,无论是初学者还是经验丰富的开发者,都能从中受益。通过深入理解和掌握这些知识点,我们可以更加高效地构建高质量的移动Web应用,满足不同...
总结起来,这个“rwTODOs”项目是一个非常适合初学者的git实战教程,通过参与这个项目,你可以学习到git的基础知识,如初始化仓库、创建分支、切换分支、合并分支、解决冲突等,并能了解到如何在实际开发中应用git...
1. **真实项目示例**:通过具体项目案例,展示如何有效利用Git进行项目管理和版本控制。 2. **常见问题解答**:收集并解答开发者在使用Git过程中可能遇到的问题。 ### 结论 “Git权威指南.pdf”旨在为初学者提供一...
项目概述:本项目致力于SSM(Spring、SpringMVC、MyBatis)框架的应用实战,通过一个完整的CRUD(创建、读取、更新、删除)操作示例进行学习总结。项目主要采用Html作为前端展示语言,同时融合了Java、JavaScript、...
从给定的文件信息来看,这是一份针对Git使用的详细培训资料,主要涵盖了Git的基本操作、分支管理、版本控制规范以及高级应用等多个方面。以下是对这些知识点的详细解析: ### Git使用培训概述 #### 版本控制的重要...
【描述】提到的"经典的实战项目示例"意味着这些项目代表了某个领域的典型应用场景,可能是企业信息化、电商、社交网络或者其他业务场景。它们通常包含了完整的前后端架构、数据库设计、业务逻辑处理等各个层面,为...
本项目示例基于spring boot 最新版本(2.1.9)实现,Spring Boot、Spring Cloud 学习示例,将持续更新…… 在基于Spring Boot、Spring Cloud 分布微服务开发过程中,根据实际项目环境,需要选择、集成符合项目...
### 廖雪峰 JavaScript Python Git 教程 #### JavaScript 教程概览 ##### JavaScript 简介 - **用途**: JavaScript 是一种轻量级的脚本语言,主要用于网页的交互控制。 - **特点**: 动态类型、弱类型、基于原型。 ...