GIT多版本并发控制(一)

一、SVN和Git

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

 

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

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

二、在WINDOWS上安装Git

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

202028_tZTm_3023401.png

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

$ 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文件的内容。

202447_LV1I_3023401.png

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

3、添加一个远程仓库

202515_bd2V_3023401.png

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

202527_AC3X_3023401.png

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

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

$ git push -u origin master

现在远端就有东西了

202539_yy2B_3023401.png

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。喜欢技术的一起来交流吧

转载于:https://my.oschina.net/u/3023401/blog/837872

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值