第一节

GIT最初是由Linus Benedict Torvalds为了更有效地管理Linux内核开发而创立的分布式版本控制软件,与常用的版本控制工具如CVS、Subversion不同,它不必服务器端软件支持,速度和效率也有着相当程度的提高。

  如果拥有CVS或者SVN的使用背景,那么更熟悉的方法是客户端-服务器端模式,所有的文件仓库(repository)都是存放在服务器上的,用户需要在本地安装客户端去服务器上的项目中获取旧版本,提交新版本。

  GIT抛弃了这种模式,当用户从远端GIT仓库下载一个工程(project)时,这个工程的所有文件,包括版本历史,文件改动都会下载下来,这时 候本地GIT就演变成了一个服务器,所有的提交(check-in)、提出(check-out)都会在这个本地服务器上执行,当你确定一项修改之后,可 以再和远端仓库进行合并和同步(merge)。所以,GIT的安装和配置步骤无论在本机还是服务器上都是完全一样的。

  这里简单地介绍GIT在Linux上的安装和使用,算做一个新手入门的简单教程。另外,GIT是有Windows上的客户端的。

  1、下载和安装GIT

  从这里 http://git-scm.com/download 下载GIT或者使用wget命令获取

  $ cd

  $ wget http://kernel.org/pub/software/scm/git/git-1.7.6.tar.bz2

  以上地址若是无法下载到的话,请到http://download.csdn.net/detail/lovejuan007/3713236 下载

  解压后切换到其目录

  $ tar xvfj git-1.7.6.tar.bz2

  $ cd git-1.7.6

  使用默认配置进行安装,如果想修改配置,可以使用 ./configure --help 来获取帮助

  $ ./configure

  $ make

  $ make install

  2、初始化配置

  GIT默认安装在 /usr/local/bin ,安装之后可以验证一下是否安装好

  $ whereis git

  git: /usr/local/bin/git

  $ git  --version

  git version 1.7.6

  $ git  --help

  首先需要指定用户名和电子邮件地址

  $ git config  --global user.name "GIT Admin"

  $ git config  --global user.emal obugs.net@gmail.com

  再验证一下配置信息

  $ git config  --list

  user.name=GIT Admin

  user.email=obugs.net@gmail.com

  core.repositoryformatversion=0

  core.filemode=true

  core.bare=false

  core.logallrefupdates=true

  其实这些配置是存放在个人主目录下的 .gitconfig 文件中的

  $ cat ~/.gitconfig

  [user]

  name = GIT Admin

  email = obugs.net@gmail.com

  3、建立工程

  本地存储的任何一个目录都可以建立GIT工程,如果已有工程位于 /home/obugs/projects/orangebugs 目录,就可以把这目录定义为GIT工程

  $ cd /home/obugs/projects/orangebugs

  $ git init

  Initialized empty Git repository in /home/obugs/projects/orangebugs/.git/

第二节

这样就建立了一个名为 .git 的文件夹,这就是GIT用来存储信息和跟踪改动的文件夹。

  $ ls -altr .git

  total 40

  drwxrwxr-x 4 git git 4096 Aug 13 22:39 refs

  drwxrwxr-x 4 git git 4096 Aug 13 22:39 objects

  drwxrwxr-x 2 git git 4096 Aug 13 22:39 info

  drwxrwxr-x 2 git git 4096 Aug 13 22:39 hooks

  -rw-rw-r -- 1 git git 23 Aug 13 22:39 HEAD

  -rw-rw-r -- 1 git git 73 Aug 13 22:39 description

  -rw-rw-r -- 1 git git 92 Aug 13 22:39 config

  drwxrwxr-x 2 git git 4096 Aug 13 22:39 branches

  drwxrwxr-x 36 git git 4096 Aug 13 22:39

  drwxrwxr-x 7 git git 4096 Aug 13 22:39 .

  4、向工程添加和提交文件

  这些动作和CVS、SVN等操作类似

  $ git add *.java *.c

  $ git commit -m 'Initial upload of the project'

  create mode 100755 Orangebugs.java

  create mode 100755 pwm/ui/DataManager.java

  create mode 100755 pwm/ui/PasswordFrame.java

  create mode 100755 pwm/tools/StrongEncryption.java

  create mode 100755 pwm/tools/PasswordStrength.java

  注意如果之前没有使用 git config 指定用户名和电子邮件地址,这里会报错

  $ git commit -m 'Initial upload of the project'

  *** Please tell me who you are.

  Run

  git config  --global user.email "you@example.com"

  git config  --global user.name "Your Name"

  to set your account's default identity.

  Omit  --global to set the identity only in this repository.

  fatal: empty ident not allowed

  5、更改文件和提交改动

  编辑文件、添加或者删除了一些字段

  $ vi Orangebugs.java

  查看和GIT仓库中的文件相比有了那些改动

  $ git diff

  diff  --git a/Orangebugs.java b/Orangebugs.java

  index 6166ed1fd82d32 100644

  - a/Orangebugs.java

  +++ b/Orangebugs.java

  @@ -2,7 +2,7 @@

  - public counter=10

  + public counter=55

  如果要提交,需要先确保将文件添加到了临时区域(staging area)然后才能提交,提交时会自动打开系统的默认编辑器,用户添加一些注释后保存并退出编辑器的时候,这些注释就同时提交到仓库中去了

  $ git add Orangebugs.java

  $ git commit

  [master 80f10a9] Added password strength meter functionality

  1 files changed, 56 insertions(+), 7 deletions(-)

  或者,简单一点的方法是使用 git commit -a 把上面两个命令合二为一。

  6、查看状态和查看注释

  如果本地的文件和远端GIT仓库上的文件相比没有任何改动,则

  $ git status

  # On branch master

  nothing to commit (working directory clean)

  如果本地做了改动但是没有提交,则

  $ git status

  # On branch master

  # Changes not staged for commit:

  # (use "git add …" to update what will be committed)

  # (use "git checkout - …" to discard changes in working directory)

  #

  # modified: Orangebugs.java

  #

  no changes added to commit (use "git add" and/or "git commit -a")

  另外,可以用下面的命令查看文件历史和以往的注释

  $ git log Orangebugs.java

  commit c919ced7f42f4bc06d563c1a1eaa107f2b2420d5

  Author: GIT Admin

  Date: Sat Aug 13 22:54:57 2011 -0700

  Added password strength meter functionality

  commit c141b7bdbff429de35e36bafb2e43edc655e9957

  Author: GIT Admin

  Date: Sat Aug 13 20:08:02 2011 -0700

  Initial upload of the project

git linux的更多相关文章

  1. 开发常用Git/Linux/idea命令快捷键总结(持续更新)

    在开发过程中,会使用越来越多的命令,或快捷键,来帮助我们提高工作效率.本文记录了我在平时积累的常用命令,分享给大家. git命令 基本命令 set LESSCHARSET=utf-8 --idea T ...

  2. ue4 shooterGame 第一步 搭建git linux服务器

    1.分别在linux(服务器)上安装git.和openssh服务, 在windows(客户机)上安装cygwin,模拟linux环境以及安装windows git客户端. 2.windows的cygw ...

  3. Jenkins+github+maven+git+linux

    Jenkins:持续集成的一个工具 github:远程存放代码 maven:利用maven创建项目,配置pom.xm依赖 git :本地仓库,可以提交代码到远程(我都是使用git 在git bush ...

  4. 7.11实习培训日志-Git Linux

    Git git子模块 先在GitHub创建两个空的respository,一个super_project和一个sub_project. 然后在git bash中向库中写入一些文件. 在super_pr ...

  5. git linux 多工程部署及git默认端口更改

    >> ssh-keygen -t rsa -C "your_email@youremail.com" print  Generating public/private ...

  6. 搭建git linux 服务器

    假设你已经有sudo权限的用户账号,下面,正式开始安装. 第一步,安装git: for Ubuntu或Debian $ sudo apt-get install git for Centos 更新一下 ...

  7. git (Linux安装及使用教程)

    查看当前服务器是否有安装git git --version 如果有,那么查看版本号,是否是你想要的或最新的版本 如果不是自己想要的版本,那么执行以下命令可卸载当前版本 yum remove git 卸 ...

  8. -Git Linux vi/vim 命令 按键 MD

    目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...

  9. 初始化git linux上传文件常见问题

    SSH生成id_rsa, id_rsa.pub后,连接服务器却报: Agent admitted failure to sign using the key 错误. 解决方法: 在当前用户下执行命令: ...

随机推荐

  1. UVA1025---A Spy in the Metro(DP)

    http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=35913 Secret agent Maria was sent to Alg ...

  2. view视图文件中的input等输入框必须含有name属性,不然控制器里的动作formCollection是没有值的

    view视图文件中的input等输入框必须含有name属性,不然控制器里的动作formCollection是没有值的,就是没有name属性,后台获取不到值

  3. CentOS 6.3 NFS的安装配置、启动及mount挂载方法

    一.环境介绍: 服务器:centos 192.168.1.225 客户端:centos 192.168.1.226 二.安装: NFS的安装配置: centos 5 : yum -y install ...

  4. 初识A*算法

    写这篇文章的初衷是应一个网友的要求,当然我也发现现在有关人工智能的中文站点实在太少,我在这里抛砖引玉,希望大家都来热心的参与. 还是说正题,我先拿A*算法开刀,是因为A*在游戏中有它很典型的用法,是人 ...

  5. 验证码点击刷新 this.src=this.src+'?'+Math.random()

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. jQuery1.11源码分析(8)-----jQuery调用Sizzle引擎的相关API

    之所以把这部分放在这里,是因为这里用到了一些基本API,前一篇介绍过后才能使用. //jQuery通过find方法调用Sizzle引擎 //jQuery通过find方法调用Sizzle引擎 jQuer ...

  7. seajs模块加载与执行原理小记

    本文仅讨论具名模块的情况,即通过spm打包出来的模块. 想起ID与路径统一原则,详见https://github.com/seajs/seajs/issues/930 今天又研究了下seajs源码,源 ...

  8. 域名在微信朋友圈内分享需要ICP备案 杜绝不良信息传播

    就在刚刚,腾讯微信团队发布公告表示域名在朋友圈内分享需要ICP备案,杜绝打击不良互联网信息的传播.公告称根据互联网管理相关规定,即日起在微信朋友圈内分享的域名,请在2014年12月31日前完成ICP备 ...

  9. vim显示行号

    在Linux环境下的编辑器有vi.vim.gedit等等.进入这些编辑器之后,为了方便我们需要编辑器显示出当前的行号,可偏偏编辑器默认是不会显示行号的.我们有二种办法可以解决: 第一种是,手动显示:在 ...

  10. HNU 12833 Omar’s Bug(分情况讨论)

    题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12833&courseid=268 解题报告:有个11个 ...