guyuehhh 发表于 2018-9-16 11:38:30

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

  版本控制工具大概有:
  RCS单机版
  CVS、SVN集中式版本控制系统
  GIT分布式版本控制系统
  这里介绍GIT,它四大位置:本地代码工作区---待提交列表staging area---本地仓库local repo---远程仓库remote repo(git服务器)。从左往右是上传代码,从右往左是下载代码。
en-resource://database/3441:0
  备注1:git比svn多了待提交列表。
  备注2:最好本地一个分支、远程一个分支,没有必要搞多个分支,只有每个人合并的时候就要花很多时间。
  备注3:帮git当作高级svn来用。
  备注4:更改服务器上的commit时间点这个不要做。
  备注5:github公开的是免费的,私有的是收费的。国有的有coding.net等。
  一、安装git
# yum -y install git  二、git基础设置
设置用户名(可以针对单个仓库设置,更改.git/config文件):  
# git config --global user.name "gxm"
  

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

  
查看设置:
  
# git config --list
  三、git命令帮助
# git help  
# git help 指定指令----比如git help add
  四、初始化一个新的git仓库
root@test ~]# mkdir demo  
# cd demo/
  
# git init
  
Initialized empty Git repository in /root/demo/.git/
  
# ls -ah
  
....git
  五、向仓库中添加新的文件,并提交(先add增加的暂存区,然后再提交到仓库。勤使用git status和git log)
# touch readme  
# vi hello.py
  
# git status
  
# On branch master
  
#
  
# Initial commit
  
#
  
# Untracked files:
  
#   (use "git add ..." to include in what will be committed)
  
#
  
#       hello.py
  
#       readme
  
nothing added to commit but untracked files present (use "git add" to track)
  
# git add readme
  
# git add hello.py
  
# git status
  
# On branch master
  
#
  
# Initial commit
  
#
  
# Changes to be committed:
  
#   (use "git rm --cached ..." to unstage)
  
#
  
#       new file:   hello.py
  
#       new file:   readme
  
#
  
# git commit -m "add readme hello"
  
add readme hello
  
1 files changed, 1 insertions(+), 0 deletions(-)
  
create mode 100644 hello.py
  
create mode 100644 readme
  
# git status
  
# On branch master
  
nothing to commit (working directory clean)
  
# git log
  
commit 542d06da8b9dd3354d6307f1d78016671df249f1这个是校验码
  
Author: gxm
  
Date:   Wed Jan 31 17:27:57 2018 +0800
  
    add readme hello
  备注:可以跳过暂存阶段,直接git commit -a -m "test",不建议这种方法,如果是新创建的文件,这个命令不会提交上去。
  六、删除文件
  文件系统方式删除文件
# rm readme  
rm:是否删除普通空文件 "readme"?y
  
# git rm readme
  
rm 'readme'
  
# git commit -m "delete readme"
  
delete readme
  
1 files changed, 1 deletions(-)
  
delete mode 100644 readme
  
# git log
  
commit dbb390aadb864796c827b49504969d334d7466ba
  
Author: gxm
  
Date:   Wed Jan 31 17:34:38 2018 +0800
  
    delete readme
  
commit 542d06da8b9dd3354d6307f1d78016671df249f1
  
Author: gxm
  
Date:   Wed Jan 31 17:27:57 2018 +0800
  
    add readme hello
  七、重命名文件
# git mv hello.py hellogxm.py  
# git commit -m "rename hello.py"
  
# git log
  
commit b89ea41790aebc686a2a48973d02b14b989c26ea
  
Author: gxm
  
Date:   Wed Jan 31 17:38:39 2018 +0800
  
    rename hello.py
  
commit dbb390aadb864796c827b49504969d334d7466ba
  
Author: gxm
  
Date:   Wed Jan 31 17:34:38 2018 +0800
  
    delete readme
  
commit 542d06da8b9dd3354d6307f1d78016671df249f1
  
Author: gxm
  
Date:   Wed Jan 31 17:27:57 2018 +0800
  
    add readme hello
  实际上执行了这3条命令:
# mv hello.py hellogxm.py  
# git rm hellogxm.py
  
# git add hellogxm.py
  八、查看历史详细日志
# git show dbb390aadb864796c827b49504969d334d7466ba  
commit dbb390aadb864796c827b49504969d334d7466ba
  
Author: gxm
  
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
# git reset --soft HEAD~1  比较柔和的撤销,如果不用--soft,就会直接放在本地代码中,如果用--soft就放在提交区。
  十、如果撤销本地没有提交的改动
  比如改了一个文件后悔了,在暂停区的时候,用chechout撤销
# git checkout -- 文件  十一、忽略提交一些文件
  很多文件步应该放在git版本控制里面的,创建一个vi .gitignore文件(这个文件在git项目的根目录)
  比如忽略,比如
# 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。



  备注1:如果本地已经创建了本地库,直接执行红框中的命令。
  备注2:如果本地没有创建本地库,麻烦先创建下,并提交文件,即用红框上面那几行命令。
  备注3:如果远程新建仓库的时候默认会生成文件,而本地没有,则建议先git pull origin master拉下来,然后再执行上面的命令。
  备注4:git push -u origin master   origin这个相当于远程服务器的别名,在.git/config文件中定义,其实master后面还有个:master,即把本地的master推送到远程的master。

en-resource://database/3439:0
  十五、下载或拉取代码到本地、上传或推代码到远程(多push和pull,要不多人协同开发的时候容易产生合并冲突)
  1、第一次下载。
git clone github提供的ssh或http链接  
cd 目录
  
git log查看历史提交记录
  
vi .git/config更改这个文件加
  

  
   name = test
  
   email = test@test.com
  2、更改文件并重新提交。
更改文件并提交到远程库  
git add 文件
  
git commit -m "描述"
  
git push origin master
  3、再次下载
git pull origin master  十六、合并冲突
  就是2个人同事改了一个文件或相同的行,只有后者提交的时候会提示冲突。会提示merge failed失败,提示手动操作。用git status查看是哪个文件冲突,然后修改下。
  
页: [1]
查看完整版本: GIT分布式版本控制系统使用教程