1、安装
Linux系统下的安装:
yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel

windows下的安装:
http://msysgit.github.com/直接下载安装文件。点击安装。
windows下的git命令窗口
windows下git的图形界面窗口:
2、配置
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
3、git初步使用
建立新的版本库:$ git init
增加新文件:$ git add *.c
提交文件:$ git commit -m 'initial project version'
项目目录中的每个文件有两种状态:trackeduntracked。Tracked文件是最新的快照,他们可以是unmodifiedmodified, 或staged。Untracked文件则是项目目录中的不在最新快照中并且不在暂存区的任何文件。
当一个文件git add增加后,而没有git commit,再次修改时,该文件就会出现两个状态。staged 和unstaged。此时提交时,将保存的是最后一次git add的文件。
3、忽略文件
通常你将会有一类文件不想git自动add甚至是显示untracked。可以创建.gitignore文件。
.gitignore文件创建规则:   
  • 空白行或以#开始的行是忽略的。
  • 标准的glob模式有效。(Standard glob patterns work.)
  • 你可以使用反斜杠(/)结尾的格式指定一个目录.
  • 你可以使用感叹号(!)的开始形式取反。

Glob模式类似shells使用的简单正则表达式。星号(*)匹配0或多个字符;[abc] 匹配方括号中任何字符(该例子中是ab, or c);问号(?)匹配单个字符;中括号包含连字符分隔的字符匹配该范围的任何字符(该示例中是0到9)。

4、常用的命令

  • git diff 查看改变信息
  • git diff --cached比较暂存区和上次提交的变化。
  • git commit -a -m 'added new benchmarks'跳过add,直接提交所有改变。注意该命令只有tracked状态的文件才有效,如果新增文件并未使用add,则该命令无效,需add之后才生效。
  • git rm grit.gemspec 删除文件,(只能删除提交的文件)
  • git rm --cached readme.txt如果忘记将文件添加到.gitignore中,并且意外的的保存了他,可以使用    该命令将文件移出暂存区。文件变成untracked状态。
  • git mv file_from file_to重命名文件
  • git log查看提交历史
  • git log -p查看所有详细提交历史
  • git commit --amend改变上次提交(只是撤销上次commit的内容,使文件回到staged状态)
  • git reset HEAD <file>...去存储化一个文件。(当使用git add后,文件状态变为staged,使用git reset HEAD之后,文件状态变为unstaged)。
  • git checkout -- <file>...撤销文件修改,git checkout没有 -- 时,可以切换分支,git checkout testing,将会切换到testing分支上。git checkout -b iss53命令则完成了以下两个命令:$ git branch iss53 $ git checkout iss53
  • git remote 查看配置的远程服务
  • git remote add [shortname] [url]增加远程版本库
  • git branch testing创建分支testing
  • git branch -d hotfix 删除分支hotfix,当git branch不带参数时,将列出当前分支。
  • git push [remotename] :[branch] 删除远程分支


5、push.default


如果refspec没有特别给出时,定义 git push行为。不同的值配套特定的工作流。例如,一个纯的中央工作流(比如,fetch源和push目标相同),upstream将适合你所要的。其他可能的值有:
  • nothing - 将不push任何事物,除非refspec明确的给出。这主要意味着通过被明确提示可以使人们避免错误。

  • current - push当前分支更新接收端同名的分支。对于中心和非中心工作流都有效。

  • upstream - push当前分支返回到集成之前的改动分支(叫做@{upstream})。这种模式仅用于你推送的版本库和平常pull的一样(例如:中心工作流)。

  • simple -在集中式工作流中, 像upstream这样工作的,有一个added安全模式拒绝那些upstream分支名称和本地不同的push。当推送到远程的和平常pull的远程不同,将如current运作。这是最安全的操作,适合新手。该模式将在Git2.0称为默认模式。

  • matching - push 两端相同名称的所有分支。这将使得你要推送的版本记住那些推出的分支的设置(例如,如果你常常推送主分支到那里,没有其他分支,你推送的版本将拥有这两个分支,并且你本地的主分支也会推送到那里)。

    要想高效的利用该模块,你应该保证在运行git push之前所有要推送的分支都已准备好。因为该模式的整个要点是允许一次推送所有的分支。如果你习惯于在单个分支工作结束后推送结果,其他门之尚未完成,则该模式不适用于你。同样,该模式也不适用于推送到一个共享的中心版本库,因为其他人可能在那里新建分支,或者更新你控制之外的分支的tip。

    当前是默认的,但是在 Git 2.0 将把默认改为simple.


Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐