Git的基本使用命令

Git的基本使用命令

Git是版本控制工具,它的作用是帮助我们的开发者管理代码的工具,说明白一些就是对文件及文件夹的管理

一、各个区块概念

1、工作区:
	存放代码的文件夹
2、暂存区:
	要将代码提交到本地仓库中的缓冲区域,可以对文件及文件夹进行撤回或提交操作
	撤回操作:将暂存区的内容删除,暂时不去进行管理
	提交操作:将暂存区的内容提交到本地仓库中
3、本地仓库:
	我们需要将代码提交到一个本地仓库中,进行集中的管理
4、远程仓库:
	将本地仓库的代码推送到远程仓库,在远程仓库进行管理

二、文件状态的概念

1、未跟踪状态:
  没有被git所管理的文件状态,红色.
2、已跟踪状态:
  已经被git所管理的文件状态,绿色.

三、Git命令

1、设置命令(全局)

在使用Git之前,需要先设置我们个人的邮箱和名称,这样才能够标识我们的身份

git config --global user.name "tangseng"
	设置用户名称
git config --global user.email "qujing@bjpowernode.com"
	设置邮箱账号(可以使用未知账号)
git config --list
	查看设置信息

在进行代码提交或推送的时候,我们的用户名称和邮箱账号都可以标识我们自己的身份在公司中也能一眼看出,
是谁提交的代码,谁的操作,可以给指定的某个人发送邮件
2、Git操作过程

在这里插入图片描述

工作区	->	(添加)	->	暂存区   ->	(提交)	->	本地仓库(.git)	->	(推送)	->	远程仓库中
			 add					commit                           push
			 reset(还原)                                           clone(克隆) 
3、基本命令
1、创建本地仓库:
	git init  
		初始化一个空的本地仓库,创建处一个.git的隐藏目录.git隐藏目录中,存放的是一些二进制的文件,我们无法
		正常查看打开只能够通过命令的方式进行查看
2、查看文件的状态:
	git status
3、将文件添加到暂存区:
	git add <文件.后缀>
		添加单个文件到暂存区
    git add <文件1.后缀 文件2.后缀>
    	添加多个文件到暂存区
	git add .    git add -A    git add --all
		添加所有文件到暂存区
4、将暂存区中的文件删除/还原/重置:
	git reset <文件.后缀>
5、将暂存区的文件提交到本地仓库:
	git commit -m "日志" <文件.后缀>
		提交单个文件到本地仓库并加上日志
	git commit -m "日志"   
		提交所有文件到本地仓库并加上日志
	git commit   
		这种方式的提交会自动弹出一个vi/vim编辑器,手动输入日志信息并进行保存退出,Linux保存退出:wq
6、进入编辑模式:
	vi/vim  <文件.后缀>   
		弹出一个vi/vim编辑器,按 a / i / o 任意一个,进入编辑模式
	:wq    
		保存退出
	:q!    
		不保存退出
7、删除文件:
	删除文件也代表,我们要将该文件从本地仓库中移除掉,要删除和提交两步.
	删除文件的时候,有好几种方式:
		1.按delete键进行物理删除(文件状态是红色的未跟踪状态,deleted)
		2.通过Linux命令删除(文件状态是红色的未跟踪状态,deleted)
			rm -rf <文件.后缀>
			右键使用git bash here,使用命令行删除,该命令行模拟Linux操作窗口,和cmd是不一样的,cmd命令行是
			不支持Linux命令的
		3.通过git命令删除(文件状态是绿色的已跟踪状态,deleted)
			git rm -rf <文件.后缀>

	删除文件后,如果想要找回,不要执行commit操作,执行了commit操作后,就代表本地仓库已经将该文件彻底
	移除了,如果删除的文件没有问题,我们需要先执行add操作,将这个文件提交到暂存区,然后再执行commit操
	作,此时,我们的文件就已经从本地仓库中移除了,没有执行commit操作之前,不是彻底删除.类似windows
	删除后,在回收站还能找到该文件.
8、找回文件:
	可以通过git status,提示找回的命令
	未跟踪的文件状态(红色):
		git restore <文件.后缀>  //将已经删除的文件找回(deleted状态而不是提交后的状态)
	已跟踪的文件状态(绿色):
		git restore --staged <文件.后缀>  //将该文件从已跟踪(绿色)的文件状态变为未跟踪(红色)的文件状态,再
		次执行git restore <文件.后缀>,即可完成文件找回操作
Git版本控制:
可以对版本进行前进和后退的管理
1、查看日志信息:
	git log
		查看日志信息,只能查看当前本次的提交以及之前的操作,无法查看到后续的操作
	git log --oneline
		查看日志,简洁版
	git reflog
		查看历史日志信息,唯一标识
2、版本切换:
 	git reset --hard 版本的hash值(唯一标识)   
 		可以通过命令对版本进行切换,查看某个提交的文件信息
3、文件比较:
	git diff <文件.后缀>
		比较暂存区和工作区的文件的差异
	git diff hash值 <文件.后缀>
		比较不同版本的差异,和之前不同的版本进行比较当前文件的差别
分支:
分支大家可以想象成树的枝杈,每棵树都有数不尽的枝杈.
分支式用于管理我们的代码的,每个版本的代码都可以形成一个分支,可以创建任意多的分支
默认的分支是master分支在第一次提交时,自动创建这个分支
1、查看分支:
	git branch
		查看所有分支
2、切换分支:
	git checkout 分支名称
		切换到指定分支
3、创建分支:
	git branch 分支名称
		当前所在的分支的代码和创建出的分支代码是一样的
4、删除分支:
	git branch -d 分支名称
		删除没有修改过代码的分支
	git branch -D 分支名称
		删除被修改过代码的分支
		
	如果当前所处于比如day01分支,那么必须要切换到其他的分支,才可以删除day01的分支,好比我们无法删
	除已经打开的文件,需要将该文件关闭后,才能够进行删除操作
5、合并分支:
	git merge 目标分支
		将目标分支的代码合并到本地分支(git branch查看当前所处的本地分支)
		合并分支就是将两个分支的代码合并到一起,将目标分支的代码合并到我们的本地分支

	分支合并或推送代码时可能会产生代码的冲突:
	冲突的产生原因:由于多个分支/多个程序员,修改了同一份文件导致的Git不知道以谁为准,就会产生冲突
	我们需要手动解决冲突当代码产生冲突时,Git会给我们进行标记,我们自己的分支和合并的那个分支,需要自
	己手动修改代码
		<<<<<<< HEAD
		...本地分支的内容
		=======
		...合并的分支的内容
		>>>>>>> aaa
	只有我们自己知道要保留的代码是什么,Git并不知道,所以我们需要手动将标记清除,然后保留代码
	提交到本地仓库即可解决冲突

	代码在推送时,如果A开发者直接推送,推送成功,B开发者,也是在没有拉取的情况下直接推送,就会产生冲突
	冲突产生的原因和合并分支一样,都是修改了相同的文件才会导致冲突的产生,此时需要将代码拉取到本地,	
	然后修改冲突的内容,提交到本地仓库中,然后推送到远程仓库,解决了由于修改了相同文件导致推送时产生
	了冲突

	如果想要少或者尽量不产生冲突,需要在推送代码之前,先进行代码的拉取,再去推送(好习惯)
远程操作:
1、远程仓库:
	github
		国外的代码管理平台
	gitee(推荐)
		国内的代码管理平台
2、关联远程仓库:
	git remote add 远程仓库名称 远程仓库地址
		关联指定的远程仓库
3、查询已关联的远程仓库:
	git remote -v
		远程仓库是可以关联多个的
4、删除已关联的远程仓库:
	git remote remove 远程仓库名称
		删除指定的远程仓库
5、对远程仓库的名称进行重命名:
	git remote rename 旧的名称 新的名称
		对指定的远程仓库进行重命名
6、将本地仓库的代码推送到远程仓库:
	git push 远程仓库名称 本地分支名称

	在第一次推送的时候,需要大家输入用户名和密码,完成登录操作
	登录操作完成后,就会记住密码,后续的推送就无需输入了
	如果不小心输入错了,需要清除windows中的凭证信息

修改或删除windows上的git用户凭证信息

	第一次提交的分支到远程仓库,在远程仓库被定义为默认分支
	默认分支是无法删除掉的,我们只能删除非默认的分支

	对本地仓库的文件进行增删改查,最终是要推送到远程仓库的
	所以我们对本地仓库完成了操作后,需要推送到远程仓库,告知远程仓库我们的某些文件内容变更了
7、删除远程仓库的分支:
	git push -d 远程仓库名称 远程分支名称(非默认分支)
		删除远程仓库中非默认的分支
8、拉取分支:
	git pull 远程仓库名称 本地分支名称:远程分支名称
		拉取的是本地没有的远程仓库的分支
		拉取分支到本地仓库,本地分支名称和远程仓库名称可以不一致,但是不推荐这样做
		最好是拉取的本地分支名称和远程分支名称保持一致

	如果是本地已存在的远程仓库的分支
		git pull 远程仓库名称 远程分支名称
9、克隆:
将远程仓库的代码下载到本地,以远程仓库创建一个文件夹,文件夹中是代码和本地仓库,包含.git的隐藏目录的
git clone 远程仓库地址
	克隆默认分支
git clone -b 远程分支名称 远程仓库地址
	克隆指定分支
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值