Git版本管理工具的使用
一、下载安装
windows:
https://git-for-windows.github.io/,下载文件后一路next
linux:
# ubuntu,debian#
$ sudo apt-get install git
#centos,redhat系统
$ yum install git
二、使用
1、在开始菜单里找Git Bash
2、自报家门
3、cd进入到你要管理的文件夹下
git init
这个命令会将此文件夹变成版本库
4、新建文件
新建文件以后git status查看,会发现文件是红色,处于待提交状态
5、提交文件
//将 index.php文件提交到暂存区
git add XXX//将 index.php文件提交到版本库,-m后是说明
git commit -m "新建XXX"
6、修改文件
命令同提交,先add再commit,提交完了以后工作区会是干净的
7、删除文件
git rm xxx
git commit -m "删除了XXX"
8、查看日志
一行展示
git log --pretty=oneline
9、版本管理
//回退到f5616版本,根据版本号切换
git reset --hard f5616
8、将本地代码推到远程仓库
10、配置ssh公钥免密推送
a.获取ssh地址
b.查看仓库地址:git remote -v
如果有的话将其删除:
命令:git remote remove <远程库名>
示例:git remote remove origin
c.配置ssh格式的远程仓库地址
git remote add origin git@github.com:AiMovie/ceshi.git
d.创建ssh key
ssh-keygen -t rsa -C "git邮箱",一直回车,不用输入密码.完成后,可以在用户主目录里找
到.ssh目录,内有id_rsa和id_rsa.pub两个文件. id_rsa是私钥,id_rsa.pub是公钥.
这两把钥匙是成对的,可以让分别持有私钥和公钥的双方相互认识.
/c/Users/young/.ssh/便生成了公钥
若是linux,则cat ~/.ssh/id_rsa.pub查看
如果要生成为其他的项目生成ssh公钥,则输入:/c/Users/ACER/.ssh/id_abc (这里的地址是我自己,要换成你们自己的 id_abc就是我起的文件名)
这样便不会被覆盖
e.将其复制到github添加
f.push本地仓库到远程,就不用填密码了
git push origin master
11、拉取别人github的代码
git pull 地址
三、Git与SVN的不同
Git为分布式版本控制器,SVN为集中式
中心的svn服务器中,存储着代码版本的变迁,及日志.
而git每个开发者的电脑上,都有完整的版本,日志,及分支信息.
但开发者不依赖于服务器,可以查看日志,回退版本,创建分支.
本质的区别在于:
git服务器是供开发者"交换"代码,服务器数据丢了没关系,分分钟再建一台.
svn的服务器,不仅交换代码,还控制着日志,版本,分支.服务器数据丢了就完了.
ps:
1、忽略文件
laravel项目忽略文件是.gitignore,把要忽略的文件或者文件夹放在里面就可以了
2、多人协作
多人协作的工作模式通常是这样:
-
首先,可以试图用
git push origin branch-name
推送自己的修改; -
如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并; -
如果合并有冲突,则解决冲突,并在本地提交;
-
没有冲突或者解决掉冲突后,再用
git push origin branch-name
推送就能成功!
3、改bug
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash
一下,然后去修复bug,修复后,再git stash pop
,回到工作现场。
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
把分支代码拉到本地 git clone -b my-branch https://git@github.com/username/myproject.git
4、分支管理
首先,master
分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev
分支上,也就是说,dev
分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev
分支合并到master
上,在master
分支发布1.0版本;
你和你的小伙伴们每个人都在dev
分支上干活,每个人都有自己的分支,时不时地往dev
分支上合并就可以了。
5、版本回退
1、git reflog master (查看本地master分支历史变动纪录)
2、git reset --hard <COMMIT_ID> (恢复到之前位置) git reset --hard master@{1}