博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GIT分布式版本控制系统使用教程
阅读量:6983 次
发布时间:2019-06-27

本文共 5171 字,大约阅读时间需要 17 分钟。

版本控制工具大概有:

RCS单机版

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

GIT分布式版本控制系统

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

图片.png

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

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

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

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

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

一、安装git

1
[root@
test 
~]
# yum -y install git

二、git基础设置

1
2
3
4
5
6
7
8
设置用户名(可以针对单个仓库设置,更改.git
/config
文件):
[root@
test 
~]
# git config --global user.name "gxm"
 
设置用户邮箱(可以针对单个仓库设置,更改.git
/config
文件):
[root@
test 
~]
# git config --global user.email "gxm@test.com"
 
查看设置:
[root@
test 
~]
# git config --list

三、git命令帮助

1
2
[root@
test 
~]
# git help
[root@
test 
~]
# git help 指定指令----比如git help add

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

1
2
3
4
5
6
root@
test 
~]
# mkdir demo
[root@
test 
~]
# cd demo/
[root@
test 
demo]
# git init
Initialized empty Git repository 
in 
/root/demo/
.git/
[root@
test 
demo]
# ls -ah
.  ..  .git

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[root@
test 
demo]
# touch readme
[root@
test 
demo]
# vi hello.py
[root@
test 
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)
[root@
test 
demo]
# git add readme
[root@
test 
demo]
# git add hello.py
[root@
test 
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
#
[root@
test 
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
[root@
test 
demo]
# git status
# On branch master
nothing to commit (working directory clean)
[root@
test 
demo]
# git log
commit 542d06da8b9dd3354d6307f1d78016671df249f1  这个是校验码
Author: gxm <gxm@
test
.com>
Date:   Wed Jan 31 17:27:57 2018 +0800
    
add readme hello

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

六、删除文件

文件系统方式删除文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@
test 
demo]
# rm readme
rm
:是否删除普通空文件 
"readme"
?y
[root@
test 
demo]
# git rm readme
rm 
'readme'
[root@
test 
demo]
# git commit -m "delete readme"
[master dbb390a] delete readme
1 files changed, 1 deletions(-)
delete mode 100644 readme
[root@
test 
demo]
# git log
commit dbb390aadb864796c827b49504969d334d7466ba
Author: gxm <gxm@
test
.com>
Date:   Wed Jan 31 17:34:38 2018 +0800
    
delete readme
commit 542d06da8b9dd3354d6307f1d78016671df249f1
Author: gxm <gxm@
test
.com>
Date:   Wed Jan 31 17:27:57 2018 +0800
    
add readme hello

七、重命名文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@
test 
demo]
# git mv hello.py hellogxm.py
[root@
test 
demo]
# git commit -m "rename hello.py"
[root@
test 
demo]
# git log
commit b89ea41790aebc686a2a48973d02b14b989c26ea
Author: gxm <gxm@
test
.com>
Date:   Wed Jan 31 17:38:39 2018 +0800
    
rename hello.py
commit dbb390aadb864796c827b49504969d334d7466ba
Author: gxm <gxm@
test
.com>
Date:   Wed Jan 31 17:34:38 2018 +0800
    
delete readme
commit 542d06da8b9dd3354d6307f1d78016671df249f1
Author: gxm <gxm@
test
.com>
Date:   Wed Jan 31 17:27:57 2018 +0800
    
add readme hello

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

1
2
3
[root@
test 
demo]
# mv hello.py hellogxm.py
[root@
test 
demo]
# git rm hellogxm.py
[root@
test 
demo]
# git add hellogxm.py

八、查看历史详细日志

1
2
3
4
5
6
7
8
[root@
test 
demo]
# git show dbb390aadb864796c827b49504969d334d7466ba
commit dbb390aadb864796c827b49504969d334d7466ba
Author: gxm <gxm@
test
.com>
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

1
[root@
test 
demo]
# git reset --soft HEAD~1

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

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

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

1
[root@
test 
demo]
# git checkout -- 文件

十一、忽略提交一些文件

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

比如忽略,比如

1
2
3
[root@
test 
demo]
# vi .gitignore
*yml
log/*.log

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

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

十三、本地分支的合并

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

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

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

图片.png

图片.png

图片.png

备注1:如果本地已经创建了本地库,直接执行红框中的命令。

备注2:如果本地没有创建本地库,麻烦先创建下,并提交文件,即用红框上面那几行命令。

备注3:如果远程新建仓库的时候默认会生成文件,而本地没有,则建议先git pull origin master拉下来,然后再执行上面的命令。

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

图片.png

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

1、第一次下载。

1
2
3
4
5
6
7
git clone github提供的
ssh
或http链接
cd 
目录
git log查看历史提交记录
vi 
.git
/config
更改这个文件加
[user]
   
name = 
test
   
email = 
test
@
test
.com

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

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

3、再次下载

1
git pull origin master

十六、合并冲突

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

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

本文转自 sailikung 51CTO博客,原文链接:http://blog.51cto.com/net881004/2068356,如需转载请自行联系原作者

你可能感兴趣的文章
Message,MessageQueue,Looper,Handler详解+实例
查看>>
在Windows平台上安装Node.js及NPM模块管理
查看>>
PPT | 云客堂——云服务助力Java 应用程序开发及部署
查看>>
[Step By Step]SAP HANA PAL指数回归预测分析Exponential Regression编程实例EXPREGRESSION(模型)...
查看>>
chrome浏览器,调试详解,调试js、调试php、调试ajax
查看>>
VMware Data Recovery备份恢复vmware虚拟机
查看>>
solr多core的处理
查看>>
解决DeferredResult 使用 @ResponseBody 注解返回中文乱码
查看>>
C# WinForm开发系列 - TextBox
查看>>
28岁少帅统领旷视南京研究院,LAMDA魏秀参专访
查看>>
java文件传输
查看>>
Xen虚拟机迁移技术
查看>>
SQL Server配置delegation实现double-hop
查看>>
iOS开发之检查更新
查看>>
安装Sql Server 2005出现“性能监视器计数器要求”错误解决方法。
查看>>
[.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现...
查看>>
Icomparer和Icomparable集合排序
查看>>
【poi xlsx报错】使用POI创建xlsx无法打开
查看>>
UNIX环境高级编程笔记之文件I/O
查看>>
DIV+CSS规范命名
查看>>