git版本控制 廖雪峰老师的git教程
git是linus 1991年创建了开源的linux、、、已成为最大的服务器系统软件
集中式的版本控制器:CVS、SVN、ClearCase是IBM的收费软件特点是安装比windows还大,上传巨慢、VSS是微软的集中式自己都不用了 ,
分布式的版本控制:GIt是在BitKeeper促使下诞生的,,,,git是做快最简单最流行的
SVN 版本控制可以使用 Cornerstore
Git: .SSH是什么 SSH是一种网络协议,用于计算机之间的加密登录
Git在Mac下的使用
Git在Mac下的使用
基础应用:
1、创建Git
$cd /创建目录
$ git init
Ok,可以往里边添加文件信息了,⚠️:文本用最好用UTF-8 万国码,图片只会显示变化的字节大小、微软下的Office 是二进制格式的,无法跟踪变化,不要使用微软下的记事本 因为每个文件开始都默认添加了0xefbbbf(十六进制)的字符,会有乱码建议你下载Notepad++代替记事本 记得格式改为UTF-8
2、每次添加的文件 以及改动的文件都要添加到 暂存区中: $git add <file.type>
3、提交可以都修改完了提交一次 $ git commit -m '修改备注'
4、获取log 日志 : $ git log
co5、获取详细的log 日志: $ git reflog
6、回到某个版本,先进行5,获得log的编号:$ git reset --hard <在5确认好的 id> 前提是没有上川岛远程库
7、撤销上一步操作 未放到暂存区的修改-》暂存区中的修改 以上两个一次选择一个撤销: $ git checkout -- <file.type>
8、获取当前的状态值: $ git status
9、删除文件 : $ rm <file.type>
远程仓库 .SSH是什么 SSH是一种网络协议,用于计算机之间的加密登录
1、推到远程仓库 ,需要在本地仓库运行命令,关联仓库 $ git remote add origin git@github.com:账户名称/learngit.git 2、第一次推上去: $ git push 就可以了,$ git push -u origin master 后边的追加可以将本地的分支和远程的分支进行绑定方便以后的操作
此后只要本地有了变化,只需要 $ git push origin master 就可以了 3、远程仓库克隆项目 $ git clone git@github.com:....xinxi 如果地址是 https://github.com/michaelliao/gitskills.git 可以 $ git://使用ssh 也可以使用https协议 ⚠️:https 协议速度会下降,每次上传都需要输入命令,但是在某些只开放http端喽的公司内部就无法使用ssh,只能用https
查看远程仓库信息:$ git remote \详细信息 $ git remote -v
把分支push到远程仓库 : $ git push origin master
分支管理
1、查看分支:git branch
2、创建分支:git branch <name>
3、切换分支:git checkout <name>
4、创建+切换分支:git checkout -b <name>
5、合并某分支到当前分支:git merge <name>
6、删除分支:git branch -d <name>
7、强制删除分支 git branch -D <name>
---------一般合并 分支会在 fast forward 模式下,合并后之前的分支记录全部没有了,这个时候想保存记录 就可以禁止掉 fast forward-----
8、添加合并记录: $ git merge --no-ff -m '记录' <name>
9、分支策略
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
所以,团队合作的分支看起来就像这样:
分支管理
Bug 分支
1、出现了问题可以创建分支解决,在合并删除分支;目前的情况是在分支dev正在开发内容,可以临时stash一下(可以多次的stash);
$ git stash 到master分支出issue-001 解决合并 删除分支issue-001 ,回到dev
$ git stash list 查看收藏列表
$ git stash pop 进行回到原来的现场并且删除收藏 进行开发
常用git stash命令:
(1)git stash save "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
(2)git stash list :查看stash了哪些存储
(3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
(4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
(5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
(6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
(7)git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储
(8)git stash clear :
删除所有缓存的stash
Tag 标签
1、添加标签:$ git tag v1.0
2、获取标签: $ git tag
3、查看标签信息: $ git show v0.9
4、创建带有说明的标签,用-a
指定标签名,-m
指定说明文字:$ git tag -a v0.1 -m "version 0.1 released" 1094adb
5、删除标签;$ git tag -d v0.1
6、命令
git push origin <tagname>
可以推送一个本地标签;
7、命令git push origin --tags
可以推送全部未推送过的本地标签;
8、命令git tag -d <tagname>
可以删除一个本地标签;
9、命令git push origin :refs/tags/<tagname>
可以删除一个远程标签。