GIT多版本并发控制(一)

1、SVN和Git

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

 

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

Git是分布式版本控制系统,那么它就没有中央服务器的,每一个人的电脑就是一个完整的版本库,这样,工做的时候就不须要联网了,由于版本都是在本身的电脑上。既然每一个人的电脑都有一个完整的版本库,那多我的如何协做呢?好比说本身在电脑上改了文件A,其余人也在电脑上改了文件A,这时,大家两之间只需把各自的修改推送给对方,就能够互相看到对方的修改了。服务器

2、在WINDOWS上安装Git

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

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

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

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

3、Git操做

一、建立Git版本库ssh

$ cd E:

$ cd 公司资料

$ mkdir Git仓库

$ cd Git仓库

二、显示当前目录分布式

$ pwd

/e/公司资料/Git仓库

三、Git init把这个目录变成能够管理的仓库spa

$ git init

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

四、用git add 添加到暂存区里面命令行

$ git add test.txt

五、把文件提交到仓库版本控制

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

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

 1 file changed, 1 insertion(+)

 create mode 100644 test.txt

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

$ git status

On branch master

nothing to commit, working tree clean

七、查看两次提交文件的不一样

$ 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

八、历史版本查看

$ 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提交

九、版本回退,若是是100,后面就接100

$ git reset --hard HEAD~1

HEAD is now at 6839a9c test.txt提交

十、查看版本号

$ git reflog

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

92ad860 HEAD@{1}: commit: test

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

十一、根据版本号来恢复

$ git reset --hard 92ad860

HEAD is now at 92ad860 test

十二、丢弃当前工做区的更改

$ git checkout -- test.txt

注意:

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

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

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

1三、删除文件

$ 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.

4、远程仓库

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

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

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

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

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

三、添加一个远程仓库

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

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

$ 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

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

$ git clone git@git.xxxxxxxxxxx

5、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。喜欢技术的一块儿来交流吧

相关文章
相关标签/搜索