GIT分布式版本控制系统使用教程

版本控制工具大概有:

RCS单机版

CVS、SVN集中式版本控制系统

GIT分布式版本控制系统

这里介绍GIT,它四大位置:本地代码工作区---待提交列表staging area---本地仓库local repo---远程仓库remote repo(git服务器)。从左往右是上传代码,从右往左是下载代码。

备注1:git比svn多了待提交列表。

备注2:最好本地一个分支、远程一个分支,没有必要搞多个分支,只有每个人合并的时候就要花很多时间。

备注3:帮git当作高级svn来用。

备注4:更改服务器上的commit时间点这个不要做。

备注5:github公开的是免费的,私有的是收费的。国有的有coding.net等。

一、安装git

[[email protected] ~]# yum -y install git

二、git基础设置

设置用户名(可以针对单个仓库设置,更改.git/config文件):
[[email protected] ~]# git config --global user.name "gxm"

设置用户邮箱(可以针对单个仓库设置,更改.git/config文件):
[[email protected] ~]# git config --global user.email "[email protected]"

查看设置:
[[email protected] ~]# git config --list

三、git命令帮助

[[email protected] ~]# git help
[[email protected] ~]# git help 指定指令----比如git help add

四、初始化一个新的git仓库

[email protected] ~]# mkdir demo
[[email protected] ~]# cd demo/
[[email protected] demo]# git init
Initialized empty Git repository in /root/demo/.git/
[[email protected] demo]# ls -ah
.  ..  .git

五、向仓库中添加新的文件,并提交(先add增加的暂存区,然后再提交到仓库。勤使用git status和git log)

[[email protected] demo]# touch readme
[[email protected] demo]# vi hello.py
[[email protected] demo]# git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       hello.py
#       readme
nothing added to commit but untracked files present (use "git add" to track)
[[email protected] demo]# git add readme
[[email protected] demo]# git add hello.py
[[email protected] demo]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   hello.py
#       new file:   readme
#
[[email protected] demo]# git commit -m "add readme hello"
[master (root-commit) 542d06d] add readme hello
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 hello.py
create mode 100644 readme
[[email protected] demo]# git status
# On branch master
nothing to commit (working directory clean)
[[email protected] demo]# git log
commit 542d06da8b9dd3354d6307f1d78016671df249f1  这个是校验码
Author: gxm <[email protected]>
Date:   Wed Jan 31 17:27:57 2018 +0800
    add readme hello

备注:可以跳过暂存阶段,直接git commit -a -m "test",不建议这种方法,如果是新创建的文件,这个命令不会提交上去。

六、删除文件

文件系统方式删除文件

[[email protected] demo]# rm readme
rm:是否删除普通空文件 "readme"?y
[[email protected] demo]# git rm readme
rm 'readme'
[[email protected] demo]# git commit -m "delete readme"
[master dbb390a] delete readme
1 files changed, 1 deletions(-)
delete mode 100644 readme
[[email protected] demo]# git log
commit dbb390aadb864796c827b49504969d334d7466ba
Author: gxm <[email protected]>
Date:   Wed Jan 31 17:34:38 2018 +0800
    delete readme
commit 542d06da8b9dd3354d6307f1d78016671df249f1
Author: gxm <[email protected]>
Date:   Wed Jan 31 17:27:57 2018 +0800
    add readme hello

七、重命名文件

[[email protected] demo]# git mv hello.py hellogxm.py
[[email protected] demo]# git commit -m "rename hello.py"
[[email protected] demo]# git log
commit b89ea41790aebc686a2a48973d02b14b989c26ea
Author: gxm <[email protected]>
Date:   Wed Jan 31 17:38:39 2018 +0800
    rename hello.py
commit dbb390aadb864796c827b49504969d334d7466ba
Author: gxm <[email protected]>
Date:   Wed Jan 31 17:34:38 2018 +0800
    delete readme
commit 542d06da8b9dd3354d6307f1d78016671df249f1
Author: gxm <[email protected]>
Date:   Wed Jan 31 17:27:57 2018 +0800
    add readme hello

实际上执行了这3条命令:

[[email protected] demo]# mv hello.py hellogxm.py
[[email protected] demo]# git rm hellogxm.py
[[email protected] demo]# git add hellogxm.py

八、查看历史详细日志

[[email protected] demo]# git show dbb390aadb864796c827b49504969d334d7466ba
commit dbb390aadb864796c827b49504969d334d7466ba
Author: gxm <[email protected]>
Date:   Wed Jan 31 17:34:38 2018 +0800
    delete readme
diff --git a/readme b/readme
deleted file mode 100644
index e69de29..0000000

九、撤销本地刚才的commit

[[email protected] demo]# git reset --soft HEAD~1

比较柔和的撤销,如果不用--soft,就会直接放在本地代码中,如果用--soft就放在提交区。

十、如果撤销本地没有提交的改动

比如改了一个文件后悔了,在暂停区的时候,用chechout撤销

[[email protected] demo]# git checkout -- 文件

十一、忽略提交一些文件

很多文件步应该放在git版本控制里面的,创建一个vi .gitignore文件(这个文件在git项目的根目录)

比如忽略,比如

[[email protected] demo]# vi .gitignore
*yml
log/*.log

十二、本地分支的创建、删除和切换

查看分支:git branch
创建分支:git branch 分支名
切换分支:git checkout 分支名
删除分支:git branch -d 分支名

十三、本地分支的合并

git checkout master  先切换master,然后把下面的分支合并过来
git merge 分支名

十四、在远程创建仓库,往远程上传或者交推代码(github方式、国内的coding.net是同样的方式,选择一种就可以)

全世界最大的git远程仓库github。

git remote add origin [email protected]:gxm555/test_git_20170208.git

git push -u origin master   origin这个相当于远程服务器的别名,在.git/config文件中定义,其实master后面还有个:master,即把本地的master推送到远程的master。

十五、下载和拉取代码到本地、上传会推代码到远程(多push和pull,要不多人协同开发的时候容易产生合并冲突)

1、第一次下载。

git clone github提供的ssh或http链接
cd 目录
git log查看历史提交记录
vi .git/config更改这个文件加
[user]
   name = test
   email = [email protected]

2、更改文件并重新提交。

更改文件并提交到远程库
git add 文件
git commit -m "描述"
git push origin master

3、再次下载

git pull origin master

十六、合并冲突

就是2个人同事改了一个文件或相同的行,只有后者提交的时候会提示冲突。会提示merge failed失败,提示手动操作。用git status查看是哪个文件冲突,然后修改下。

<<<<<<<和>>>>>>之前的内容需要我们手动合并的,合并后add、commint后再push。

原文地址:http://blog.51cto.com/net881004/2068356

时间: 2024-08-28 23:09:45

GIT分布式版本控制系统使用教程的相关文章

第1章Git分布式版本控制系统

今天在高铁闲来无事,决定把我之前遗漏的Git好好整理一番. 首先感谢老男孩架构师班赵班长深入讲解Git,综合自己实践整理而来,特此在今天分享给大家. 笔者QQ:572891887 Linux架构交流群:471443208 1.1Git诞生历史 我想大家还记得Linus torvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自全球Linux技术爱好者的贡献,志愿者们通过邮件向Linus发送着自己编写的源代码文件

手把手教你玩转Git分布式版本控制系统!

目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 1 Git诞生历史 我 想大家还记得Linus torvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自 全球Linux技术爱好者的贡献,志愿者们通过邮件向Linus发送着自己编写的源代码文件,然后由Linus本人通过手工的方式

Git分布式版本控制系统最佳实践

今天在高铁闲来无事,决定把我之前遗漏的Git好好整理一番. 首先感谢老男孩架构师班赵班长深入讲解Git,综合自己实践整理而来,特此在今天分享给大家. 笔者QQ:572891887 Linux架构交流群:471443208 1.1Git诞生历史 我想大家还记得Linustorvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自全球Linux技术爱好者的贡献,志愿者们通过邮件向Linus发送着自己编写的源代码文件,

GIT分布式版本控制系统-1

在Linux上安装Git: 1.输入Git,看看系统有没有安装Git: $ git The program 'git' is currently not installed. You can install it by typing: sudo apt-get install git 如上提示Git没有安装,通过sudo apt-get install git就可以直接完成Git安装 在Windows上安装Git: 在windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安

Git分布式版本控制系统

1.版本控制 是否依稀记得你的毕业论文? 毕业论文_初稿.doc 毕业论文_修改1.doc 毕业论文_修改2.doc 毕业论文_修改3.doc 毕业论文_完整版1.doc 毕业论文_完整版2.doc 毕业论文_完整版3.doc 毕业论文_最终版1.doc 毕业论文_最终版2.doc 毕业论文_死也不改版.doc ... 是否还记得老师让你重新自己写的项目? blog1 blog2 blog3 blog4 ... 以上是使用文件或文件夹进行版本管理,以上方式有缺点: 多个文件,保留所有版本时,需要

Git分布式版本控制系统学习笔记

Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.[4] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具.开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵

使用Git分布式版本控制系统

GIT(分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具.开放源码社区中的有些人

git分布式版本控制系统常用的操作

Git是一个版本控制系统,用来追踪计算机文件的变化的工具,也是一个供多人使用的协同工具.它是一个分布式的版本控制系统,本文将简单介绍如何使用.简单来说,就是你要和你的伙伴一起完成一项任务,但是你们要互相交换修改,查看自己的历史版本等.版本控制系统就是帮助我们做这个的. 网上一堆教程,难得讲得清楚的.这里也不废话介绍原理之类的,直接说明如何使用.由于Git是一个分布式文件控制系统,所以一般采用一个服务器方便大家交换修改用的.每个人本地都有一个版本库,保存自己的历史版本,然后每个人可以把自己的修改提

分布式版本控制系统 Git 教程

目录   简介  原理  安装  配置  命令  小结  资料 简介 Git 是什么? Git 是一个开源的分布式版本控制系统. 什么是版本控制? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 什么是分布式版本控制系统? 介绍分布式版本控制系统前,有必要先了解一下传统的集中式版本控制系统. 集中化的版本控制系统,诸如 CVS,Subversion 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文