设为首页 收藏本站
查看: 1251|回复: 0

[经验分享] GIT分布式版本控制系统使用教程

[复制链接]

尚未签到

发表于 2018-9-16 11:38:30 | 显示全部楼层 |阅读模式
  版本控制工具大概有:
  RCS单机版
  CVS、SVN集中式版本控制系统
  GIT分布式版本控制系统
  这里介绍GIT,它四大位置:本地代码工作区---待提交列表staging area---本地仓库local repo---远程仓库remote repo(git服务器)。从左往右是上传代码,从右往左是下载代码。
DSC0000.jpg

  备注1:git比svn多了待提交列表。
  备注2:最好本地一个分支、远程一个分支,没有必要搞多个分支,只有每个人合并的时候就要花很多时间。
  备注3:帮git当作高级svn来用。
  备注4:更改服务器上的commit时间点这个不要做。
  备注5:github公开的是免费的,私有的是收费的。国有的有coding.net等。
  一、安装git
[root@test ~]# yum -y install git  二、git基础设置
设置用户名(可以针对单个仓库设置,更改.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命令帮助
[root@test ~]# git help  
[root@test ~]# git help 指定指令----比如git help add
  四、初始化一个新的git仓库
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)
[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 ..." 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 ..." 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
  
Date:   Wed Jan 31 17:27:57 2018 +0800
  
    add readme hello
  备注:可以跳过暂存阶段,直接git commit -a -m "test",不建议这种方法,如果是新创建的文件,这个命令不会提交上去。
  六、删除文件
  文件系统方式删除文件
[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
  
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
  七、重命名文件
[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
  
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条命令:
[root@test demo]# mv hello.py hellogxm.py  
[root@test demo]# git rm hellogxm.py
  
[root@test demo]# git add hellogxm.py
  八、查看历史详细日志
[root@test demo]# 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
[root@test demo]# git reset --soft HEAD~1  比较柔和的撤销,如果不用--soft,就会直接放在本地代码中,如果用--soft就放在提交区。
  十、如果撤销本地没有提交的改动
  比如改了一个文件后悔了,在暂停区的时候,用chechout撤销
[root@test demo]# git checkout -- 文件  十一、忽略提交一些文件
  很多文件步应该放在git版本控制里面的,创建一个vi .gitignore文件(这个文件在git项目的根目录)
  比如忽略,比如
[root@test 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。
DSC0001.jpg

DSC0002.jpg

DSC0003.jpg

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


  十五、下载或拉取代码到本地、上传或推代码到远程(多push和pull,要不多人协同开发的时候容易产生合并冲突)
  1、第一次下载。
git clone github提供的ssh或http链接  
cd 目录
  
git log查看历史提交记录
  
vi .git/config更改这个文件加
  
[user]
  
   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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-584499-1-1.html 上篇帖子: ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb) 下篇帖子: git原理图解(转载)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表