SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是本身的电脑,因此首先要从中央服务器哪里获得最新的版本,而后干活,干完后,须要把本身作完的活推送到中央服务器。集中式版本控制系统是必须联网才能工做,若是在局域网还能够,带宽够大,速度够快,若是在互联网下,若是网速慢的话,就纳闷了。git
Git是目前世界上最早进的分布式版本控制系统。github
Git是分布式版本控制系统,那么它就没有中央服务器的,每一个人的电脑就是一个完整的版本库,这样,工做的时候就不须要联网了,由于版本都是在本身的电脑上。既然每一个人的电脑都有一个完整的版本库,那多我的如何协做呢?好比说本身在电脑上改了文件A,其余人也在电脑上改了文件A,这时,大家两之间只需把各自的修改推送给对方,就能够互相看到对方的修改了。服务器
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个相似命令行窗口的东西,就说明Git安装成功!微信
安装完成后,还须要最后一步设置,在命令行输入:app
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
一、建立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.
首先你得有个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
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。喜欢技术的一块儿来交流吧