Git 命令+Git与SVN的区别

1.Git的发展

Git最初是由Linux开发者Linus用了仅仅两周时间纯C语言编写而成,在编写完成之后就立马上手接管Linux源代码,不过在此之前Linux是由BitMover公司开发的BitKeeper分布式版本控制系统所管理源代码,它是商业收费的分布式版本控制器,但BitMover公司看中Linux开源精神,免费授权给Linux社区使用,在2002年时,Linux开始使用BitKeeper分布式版本控制系统管理源代码,但好景不长,有一天Linux社区成员Andrew(samba(局域网共享文件c/s程序)的作者)试图破解BitKeeper共享给所有人使用,被BitMover公司发现并收回了免费使用的版权,随后Linus就用了两周时间开发出了git(两周时间包括测试),也就是目前为止最好用的分布式版本控制系统。大名鼎鼎的github用的就是git系统来管理它们的网站,这里需要区分一下,github和git是两个东西,github是一个社区,git是一个服务系统,github只支持git分布式系统,所以故名成为github。

2.git命令

git init    初始化

git status  查看仓库当前的状态

git diff <file>  查看具体修改了什么内容

git diff HEAD --<file> 命令可以查看工作区和版本库里面最新版本的区别

git add <file> 添加到暂存

git add -f <file>  假如文件被忽略这样可以强制添加

git commit -m "balabalabala" 提交暂存区的文件到本地仓库

git log --graph --pretty=oneline 查看日志

git reset --hard HEAD^   (git reset --hard 版本编号)  版本回退 

git reset HEAD <file> 添加到了暂存区时,想丢弃修改 

git checkout --<file>  当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时

git rm <file> 从版本库中删除该文件(然后commit)

git remote   查看远程库信息

git remote -v  更加详细的查看

git remote add origin 地址  本地关联远程库

git clone  地址   克隆远程库

git branch  查看当前分支 

git branch <name>   创建分支

git checkout <name>   切换分支

git checkout -b <name>  我们创建分支,然后切换到分支

git merge <name>  合并分支到当前分支

git merge --no-ff -m "xxxxx" <name>   合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

git branch -d <name>   删除分支

git branch -D <name>   强行删除

git pull origin <name>   拉取

git push origin <name>  推送

git stash    把当前工作现场“储藏”起来,等以后恢复现场后继续工作

git stash list   查看贮藏区

git stash apply  恢复后,stash内容并不删除

git stash drop    删除贮藏区的内容

git stash pop     恢复的同时把stash内容也删了

你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令 git stash apply stash@{0}

git rebase  变基(线路变得好看)

git tag <tagname>   打标签

git tag -a <tagname> -m "balabalbal..."   可以指定标签信息

git tag   查看所有标签

git show <tagname>   查看该标签版本信息

git tag -d <tagname>  删除标签

git push origin <tagname>  推送标签到远程

git push origin --tags   一次性推送全部尚未推送到远程的本地标签

git push origin :refs/tags/<tagname>  可以删除一个远程标签

在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

git reflog用来记录你的每一次命令

3.区别

  • 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。

  • 2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

  • 3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

  • 4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

  • 5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

  •  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值