Git--版本管理的使用及理解

若是多人合做时,git也是须要中间交换服务器来解决冲突合并,这不仍是集中式版本控制吗?
而svn不是也能够将全部源码下载到本机,而后在本机修改,保存在本机上,为何这个不能说是分布式,提交的时候不也是解决冲突合并就ok吗?html

git和svn的区别:java

https://blog.csdn.net/hellow__world/article/details/72529022git

git详细使用说明:github

https://my.oschina.net/gsbhz/blog/337719缓存

 

 

 

git使用过程简介:服务器

准备工做app

1.下载git,并安装,安装完毕后,桌面空白处上右键,菜单出现Git GUI Here和Git Bash Here既安装成功分布式

2.注册github帐号(这一步不是必须,由于本文要配合github使用,因此须要github做为远程仓库)svn

 

Git基本经常使用命令以下:post

   mkdir:         XX (建立一个空目录 XX指目录名)

   pwd:          显示当前目录的路径。

   git init          把当前的目录变成能够管理的git仓库,生成隐藏.git文件。

   git add test.txt       把test.txt 文件添加到暂存区去。

   git commit –m “修改bug10879”  提交文件 –m 后面的是注释。

   git status        查看仓库状态

   git diff  test.txt       查看test.txt 文件修改了那些内容

   git log          查看历史记录

   git reset  –hard HEAD^ 或者 git reset  –hard HEAD~ 回退到上一个版本

                        (若是想回退到100个版本,使用git reset –hard HEAD~100 )

   cat test.txt          查看test.txt 文件内容

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

   git checkout -- test.txt   把test.txt 文件在工做区的修改所有撤销。

   git rm test.txt           删除test.txt 文件

   git remote add origin http://github.com/username/gittest 关联一个远程库

   git push –u origin master  (第一次要用-u 之后不须要) 把当前master分支推送到远程库

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

   git clone http://github.com/username/gittest 从远程库中克隆

   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 add 添加 多余文件 
这样的错误是因为, 有的时候 可能

git add . (空格+ 点) 表示当前目录全部文件,不当心就会提交其余文件

git add 若是添加了错误的文件的话

撤销操做

git status 先看一下add 中的文件 
git reset HEAD 若是后面什么都不跟的话 就是上一次add 里面的所有撤销了 
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了

 

 

git 放弃本地修改

若是在修改时发现修改错误,而要放弃本地修改时,

一,未使用 git add 缓存代码时。

可使用 git checkout -- filepathname (好比: git checkout -- readme.md  ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃全部的文件修改可使用 git checkout .  命令。

此命令用来放弃掉全部尚未加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。可是此命令不会删除掉刚新建的文件。由于刚新建的文件还没已有加入到 git 的管理系统中。因此对于git是未知的。本身手动删除就行了。

 

二,已经使用了  git add 缓存了代码。

可使用  git reset HEAD filepathname (好比: git reset HEAD readme.md)来放弃指定文件的缓存,放弃因此的缓存可使用 git reset HEAD . 命令。

此命令用来清除 git  对于文件修改的缓存。至关于撤销 git add 命令所在的工做。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操做,就能够放弃本地的修改。

相关文章
相关标签/搜索