文档章节

GIT多版本并发控制(一)

IT--小哥
 IT--小哥
发布于 2017/02/13 20:28
字数 1589
阅读 75
收藏 0

一、SVN和Git

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

 

Git是目前世界上最先进的分布式版本控制系统。

Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

二、在WINDOWS上安装Git

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"

$ git config --global user.email "email@example.com"

三、Git操作

1、创建Git版本库

$ cd E:

$ cd 公司资料

$ mkdir Git仓库

$ cd Git仓库

2、显示当前目录

$ pwd

/e/公司资料/Git仓库

3、Git init把这个目录变成可以管理的仓库

$ git init

Initialized empty Git repository in E:/公司资料/Git仓库/.git/

4、用git add 添加到暂存区里面

$ git add test.txt

5、把文件提交到仓库

$ git commit -m "test.txt提交"

[master (root-commit) 6839a9c] test.txt提交

 1 file changed, 1 insertion(+)

 create mode 100644 test.txt

6、查看是否还有未提交文件

$ git status

On branch master

nothing to commit, working tree clean

7、查看两次提交文件的不同

$ git diff test.txt

diff --git a/test.txt b/test.txt

index 5f2f16b..c7dc989 100644

--- a/test.txt

+++ b/test.txt

@@ -1 +1 @@

-1111

+2222

8、历史版本查看

$ git log

commit 92ad86071889c2e76b4ad3969126a1e58d156492

Date:   Mon Feb 13 18:17:00 2017 +0800



    test



commit 6839a9cf5ba3a8be6e0f66a08b39469bdcc63520

Date:   Mon Feb 13 17:52:42 2017 +0800



    test.txt提交



$ git log --pretty=oneline

92ad86071889c2e76b4ad3969126a1e58d156492 test

6839a9cf5ba3a8be6e0f66a08b39469bdcc63520 test.txt提交

9、版本回退,如果是100,后面就接100

$ git reset --hard HEAD~1

HEAD is now at 6839a9c test.txt提交

10、查看版本号

$ git reflog

6839a9c HEAD@{0}: reset: moving to HEAD~1

92ad860 HEAD@{1}: commit: test

6839a9c HEAD@{2}: commit (initial): test.txt提交

11、根据版本号来恢复

$ git reset --hard 92ad860

HEAD is now at 92ad860 test

12、丢弃当前工作区的更改

$ git checkout -- test.txt

注意:

工作区的修改内容,执行这个命令会保持和版本库一致。

已经添加到暂存区后修改的,执行这个命令会和刚添加到暂存区的一致

git checkout -- test.txt中的--很重要,没有的话就变成创建分支了

13、删除文件

$ git add 1.txt

$ git status

On branch master

Changes to be committed:

  (use "git reset HEAD <file>..." to unstage)



        new file:   1.txt

$ git commit -m "1.txt"

[master 7836738] 1.txt

 1 file changed, 1 insertion(+)

 create mode 100644 1.txt

$ git status

On branch master

nothing to commit, working tree clean

$ rm 1.txt

$ git status

On branch master

Changes not staged for commit:

  (use "git add/rm <file>..." to update what will be committed)

  (use "git checkout -- <file>..." to discard changes in working directory)

        deleted:    1.txt

no changes added to commit (use "git add" and/or "git commit -a")

##此时会回退

$ git checkout -- 1.txt

$ git status

On branch master

nothing to commit, working tree clean

$ rm 1.txt

##此时会删除

$ git commit -a

Aborting commit due to empty commit message.

四、远程仓库

首先你得有个Github的账号吧,哈哈

1、创建SSH KEY(先检查一下看有没有哈,没有再搞C:\Users\任冠亚\.ssh)

$ ssh-keygen -t rsa -C "your-mail"

2、登陆你的github,打开” settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容。

当然Tom就是我本人的英文名字了

3、添加一个远程仓库

添加完成后我们就有一个空仓库了

4、把本地库和线上库关联,然后推送本地代码

$ git remote add origin git@git.benmu-health.org:renguanya/test.git

$ git push -u origin master

现在远端就有东西了

Git push就是把当前分支master推送到远程。第一次推送的时候加上-u参数,Git不但会把本地master推送到远程,还会把本地和远程master关联起来。

现在你就有了你自己的Git仓库了,以后本地提交后,就运行这个push

$ git push origin master

5、如何把远程的代码get下来呢

$ git clone git@git.xxxxxxxxxxx

五、Git常用命令

Git基本常用命令如下:

git commit -- m “xx”     -m后面接的是注释

git reset -- hard HEAD^ 或者 git reset  –hard HEAD~

回退到上一个版本(如果想回退到100个版本,使用git reset –hard HEAD~100 )

git reflog                 查看历史记录的版本号id

git checkout -- XX       把XX文件在工作区的修改全部撤销。

git rm XX                  删除XX文件

git remote add origin xxxx     关联一个远程库

git push -u origin master  把当前master分支推送到远程库

git clone xxxx          从远程库中克隆

git checkout –b dev    创建dev分支 并切换到dev分支上

git branch             查看当前所有的分支

git checkout master     切换回master分支

git merge dev            在当前的分支上合并dev分支

git branch –d dev      删除dev分支

git branch name         创建分支

git stash               把当前的工作隐藏起来 等以后恢复现场后继续工作

git stash list            查看所有被隐藏的文件列表

git stash apply          恢复被隐藏的文件,但是内容不删除

git stash drop           删除文件

git stash pop            恢复文件的同时 也删除文件

git remote              查看远程库的信息

git remote –v          查看远程库的详细信息

git push origin master     Git会把master分支推送到远程库对应的远程分支上

 

PS:上述只是一些基本的知识,明天尽量接着更二

为了方便大家交流,本人开通了微信公众号,和QQ群291519319。喜欢技术的一起来交流吧

© 著作权归作者所有

IT--小哥
粉丝 47
博文 147
码字总数 147203
作品 0
东城
数据库管理员
私信 提问
ionic环境配置以及创建项目

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cJune/article/details/85225506 文章目录 git 是一种敏捷方便的的分布式版本控制工具,操作简单,速度快,可...

刘佳欢--hannah
2018/12/23
0
0
国内开源文档管理系统PPM Doc v1.2 发布

PPM Doc开源文档管理系统第3个版本 v1.2 发布,欢迎大家免费下载使用~ 最近忙着写云缺陷以及迁移网站,所以PPM Doc更新就慢了,时隔一个多月才更新版本,今后会加快开发的。 在这里也再跟大家...

余正忠
2013/11/14
8.9K
7
【Git 第5课】 Git工作流

上次课中,我们创建了自己的Git仓库,并向其中添加了一个readme.txt的文件。在继续深入介绍Git的使用方法之前,有必要先来讲一讲Git的工作流。 在你自建的Git本地仓库中,有三个区域:本地目...

Harry_sir
2015/12/26
121
0
Git安装及配置5分钟快速教程

Git是什么 Git是一款免费、开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 与常用的版本控制工具CVS、Subversion等不同的是它采用了分布式版本库的方式,不...

架构之路
2017/11/27
0
0
搭建私有git服务器进行版本控制

一、安装git 分别在服务器和本地安装最新版本的git 1、服务器上源码安装最新版git 通常centos上使用yum源安装的git版本过低 检查系统上是否已经安装git,若已有则卸载 安装依赖包,下载最新版...

架构之路
2018/10/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud 笔记之Spring cloud config client

观察者模式它的数据的变化是被动的。 观察者模式在java中的实现: package com.hxq.springcloud.springcloudconfigclient;import org.springframework.context.ApplicationListener;i...

xiaoxiao_go
昨天
6
0
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部