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、多人协作

多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin branch-name推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交;

  4. 没有冲突或者解决掉冲突后,再用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}

原文地址:https://www.cnblogs.com/lamp01/p/7257374.html