git linux
第一节
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的更多相关文章
- 开发常用Git/Linux/idea命令快捷键总结(持续更新)
在开发过程中,会使用越来越多的命令,或快捷键,来帮助我们提高工作效率.本文记录了我在平时积累的常用命令,分享给大家. git命令 基本命令 set LESSCHARSET=utf-8 --idea T ...
- ue4 shooterGame 第一步 搭建git linux服务器
1.分别在linux(服务器)上安装git.和openssh服务, 在windows(客户机)上安装cygwin,模拟linux环境以及安装windows git客户端. 2.windows的cygw ...
- Jenkins+github+maven+git+linux
Jenkins:持续集成的一个工具 github:远程存放代码 maven:利用maven创建项目,配置pom.xm依赖 git :本地仓库,可以提交代码到远程(我都是使用git 在git bush ...
- 7.11实习培训日志-Git Linux
Git git子模块 先在GitHub创建两个空的respository,一个super_project和一个sub_project. 然后在git bash中向库中写入一些文件. 在super_pr ...
- git linux 多工程部署及git默认端口更改
>> ssh-keygen -t rsa -C "your_email@youremail.com" print Generating public/private ...
- 搭建git linux 服务器
假设你已经有sudo权限的用户账号,下面,正式开始安装. 第一步,安装git: for Ubuntu或Debian $ sudo apt-get install git for Centos 更新一下 ...
- git (Linux安装及使用教程)
查看当前服务器是否有安装git git --version 如果有,那么查看版本号,是否是你想要的或最新的版本 如果不是自己想要的版本,那么执行以下命令可卸载当前版本 yum remove git 卸 ...
- -Git Linux vi/vim 命令 按键 MD
目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...
- 初始化git linux上传文件常见问题
SSH生成id_rsa, id_rsa.pub后,连接服务器却报: Agent admitted failure to sign using the key 错误. 解决方法: 在当前用户下执行命令: ...
随机推荐
- JAVA中toString方法的作用
因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”. 它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不 ...
- 最短路之Dijkstra算法
1. 邻接矩阵 int cost[MAX_V][MAX_V]; //assume cost[u][v]>0 int d[MAX_V]; bool used[MAX_V]; void Dijkst ...
- 深入浅出Redis03 使用Redis数据库(hashes类型)
一 hashes类型及操作 Redis hash是一个string类型的field和value的映射表.它的添加,删除操作都是0(1)(平均).hash特别适合用于存储对象,相较于对将对象的每个字段存 ...
- jQuery EasyUI API 中文文档
http://www.cnblogs.com/Philoo/tag/jQuery/ 共2页: 1 2 下一页 jQuery EasyUI API 中文文档 - 树表格(TreeGrid) 风流涕淌 ...
- 使用UpdLock来扣减库存
UPDLOCK.UPDLOCK 的优点是允许您读取数据(不阻塞其它事务)并在以后更新数据,同时确保自从上次读取数据后数据没有被更改. 当我们用UPDLOCK来读取记录时可以对取到的记录加上更新锁,从而 ...
- Note:JSON
JSON是JavaScript的原生格式,意味着在JavaScript中处理JSON数据不需要特殊的API或工具包,它是完全独立于语言的文本格式,可以把JavaScript对象中的一组对象转化为字符串 ...
- Support Vector Machines for classification
Support Vector Machines for classification To whet your appetite for support vector machines, here’s ...
- apt-get常用命令
apt-get常用命令 一,什么的是apt-get 高级包装工具(英语:Advanced Packaging Tools,简称:APT)是Debian及其衍生发行版(如:ubuntu)的软件包管理器. ...
- linux init.d脚本编写模板
#!/bin/bash ### BEGIN INIT INFO # # Provides: location_server # Required-Start: $local_fs $remote_fs ...
- Apache22中配置虚拟主机(Apache VirtualHost)
Apache VirtualHost的作用就是可以让一个apache为多个域名服务,相当于一个服务器挂了N多个网站,举个例子: 我的apache服务器,ip为x.x.x.x,我有两个域名www.too ...