git使用

Git 版本控制器

一、 Git 简介

什么是git?

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

Git的诞生

​ Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?

​ 事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!

​ 到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。

​ 安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。

Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!

二、Git的使用

1. 创建版本库

git init

瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

2. 配置当前版本库的信息

```git config --global user.name ‘xxx’` ``

git config --global user.email 'xxx@qq.com'

3. 添加文件

git add <file_name>

git add 1.html  添加1.html

git add .       .添加修改文件到仓库

git add -all    -all  添加所有文件

4. 提交文件

git commit

$ git commit -m '修改了冲突'
-m 提交的信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WmuhmH8B-1592489933675)(./git/git.jpg)]

4.1 查看冲突

git diff

4.2 查看跟远程仓库冲突

git diff origin/master 查看完远程仓库冲突后,没问题在拉下来合并

5 . 查看git状态

git status

6. 版本控制

git reset

版本操作

跳到当前版本 git reset --hard HEAD  
跳到上一版本 git reset --hard HEAD^  
跳到上上版本 git reset --hard HEAD^^
跳到指定版本 git reset --hard commit_id

看提交历史

git log 查看当前历史

git log --pretty=oneline     只输出一行

git reflog 查询所有提交历史

git reflog 以便确定要回到未来的哪个版本
7. 撤销修改

git checkout -- file_name

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file_name。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file_name,就回到了场景1,第二步按场景1操作
8 . 删除文件
2.git rm readme.txt
	git commit -m “delete readme.txt"	
    
撤销办法:
    找回删除文件(版本会退):使用 git reset —hard HEAD^
9. 分支管理
查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

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

删除分支:git branch -d <name>
查看自动合并冲突: git diff,然后git status查看(会有红色文件),然后(vim 红色文件)打开修改,然后 git add . ->  git commit -m '备注版本' -> 执行上传  git push 别名 master:master
//执行上传的时候打开浏览器找到Github官网登录自己的账号密码
10. 远程仓库

关联远程仓库 remote

git remote add origin https://github.com/lamp402213226/php110.git

推送代码到仓库 push

git push -u origin master (origin网址别名 可以自定义) 将代码推送到master分支上 (如果没法上传,先pull拉取一下)

git push -u origin master:master 将本地的master分支上的代码推送到服务器上的master分支上。(一般用这个去进行上传,因为明确指定要怎么上传),(如果-u不管用,去掉-u)。

git push -u origin master:master -f 
-f 强制推送  一般不要使用

拉取 pull

git pull origin master 拉取服务器上的版本

获分支新的的版本 fetch

git fetch

克隆版本库 clone

git clone https://github.com/lamp402213226/test.git

克隆完以后的注意点:

1、不能正常打开laravel框架里的页面需要配置 看.gitignore这个文件,里面的内容都是不被git所管理的(不会进行克隆)

​ a、没有克隆vendor文件夹(因为文件太大) ,里面都是laravel框架的第三方组件,可以通过composer.json,直接 composer install(没有安装的全下载)。(尽量不要用,不安全)或者直接把.gitignore里面的内容删除掉,就全部下载了,不用composer install。

​ b、还有.env文件没有下载(因为.env文件里面都是密码,加密的东西),在 git Base 里面输入 cp .env.example .env,就可以正常访问了。

​ c、生成.env里的程序秘钥 php artisan key:generate

git fetch和git pull的区别

git fetch只会将本地库所关联的远程库的commit id更新至最新
git pull会将本地库更新至远程库的最新状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eURcg8ks-1592489933675)(/Users/admin/Downloads/20150104153019820.png)]

三、团队协作

场景应用
1. 组长
1. 在项目中初始化仓库	git init
2. 配置git的用户名 和 邮箱	git config ..
 	  			注意配置自己的邮箱 权限问题	
  	 		*** 将自己的组员 添加到项目的协作者
3. 添加并且提交到本地的版本库	git commit	
4. 添加本地的和远程仓库的关联	git remote
5.推送	
   git push -u origin master:master 
   		-u 声明提交的用户  一般第一次提交的时候使用
2. 组员
1. 进行克隆
2. 配置版本库的用户名和邮箱
3. 添加新的分支
4. 修改完->添加到本地 git add .     git commit -m '备注版本'
推送  git push origin lisi:lisi
3. 合并分支
1. 查看当前的分支 git fetch
2. 合并 git merge origin/xxxx 	
			注意:合并要查看当前的工作区和版本库是否一致  git status
新知识:
1、如果文件已经存在可以使用:git commit -am '版本' 直接提交到本地仓库 
2、git remote -v  查看git远程库信息	
3、git remote show origin 查看remote地址,远程分支,还有本地分支与之相	对应关系等一系列信息
4、git clone 远程地址 -b(指定远程分支) master 克隆指定远程分支
5、git fetch origin master:make  指定远程分支拉取文件并创建本地新分支(存放新内容)
6、git merge origin/mahongcan 将远程分支内容与本地内容进行合并  (组员也可以)
7、查看远程仓库链接地址 git remote -v
8、修改git远程地址(origin) 方法有三种:
    1.修改命令
    git remote set-url origin [url]
    例如:git remote set-url origin gitlab@gitlab.chumob.com:php/hasoffer.git
    2.先删后加
    git remote rm origin
    git remote add origin [url]
    3.直接修改config文件
9、git checkout . 清除在修改区的修改
10、git config --global push.default simple 此设置是Git命令push的默认模式为simple,当我们执行git push没有指定分支时,自动使用当前分支,而不是报错
11、git checkout -f 的作用是将在暂存区的更改文件进行强制撤销。 -f强制
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值