git的使用

本文详述了Git的基本操作,包括clone、pull、push、分支管理、合并、解决冲突等,并介绍了如何在IntelliJ IDEA中高效使用Git。此外,讲解了SSH与HTTP配置的区别,以及Windows凭据管理器的使用。文中还强调了Git工作流中的关键概念,如本地库、暂存区和工作区的状态管理,以及分支和合并的策略。
摘要由CSDN通过智能技术生成

说白了,Git会clone,pull push,建分支,合并,暂存,commit,rollback,merge就够用了。然后Git配合idea使用,炒鸡棒[微笑][微笑][微笑]

删除分支 next-dev 每次拉取next分支,都得删除dev分支,然后重新建dev分支,保证dev和next版本一样 git branch -d 分支名

一.设置用户签名

	git config --global user.name 用户名
	git config --global user.email 邮箱

二.初始化本地库

	git init

三.查看本地库状态

	git status

四.添加暂存区

	git add 文件名(*)

五.提交本地库

	git commit -m"" 文件名(*)

六.历史版本

	git reflog 查看版本信息

	git log 查看版本详细信息
		
	git reset --hard 版本号  版本穿梭

七.Git 分支

	git branch local_feature01 创建分支
		
	git branch -D 分支名 强制删除分支
	
	git branch 查看本地所有分支
	
	git branch -a 查看所有的分支
	
	git branch -r 查看远程所有分支
	
	git checkout local_feature01 切换分支
	
	git checkout -b local_feature02 创建并切换分支
	
	git merge 分支名 合并分支到当前分支

八.解决冲突

	合并后,产生冲突,解决冲突,得重新 add *  commit -m"" 
	注意此时使用 git commit 命令时不能带文件名
	一般用idea , 解决冲突后,会自动commit

九.远程仓库操作

	1.与远程库建立连接 (并起别名,这一步必须有)
		git remote -v 查看当前所有远程地址的别名
		git remote add 别名 远程地址

	2.git clone -b 分支名 “git地址”
		:clone 会做如下操作。1、拉取代码。2、初始化本地仓库。3、创建别名	
	
	3.git pull origin 远程分支名 本地分支名
	
	4.git push origin 本地分支名:远程分支名

十.邀请 用户

	只有邀请用户了之后,用户才能pull 和 push
	邀请用户后,用户也会同时克隆和更新远程库,相当于把远程库复制了一份过来
	每次提交给公司远程库代码后,用户的远程库也会更新

十二.windows 凭据管理器

	存自己的github的用户名和密码
	原因:在 remote,clone,pull,push的时候,都得用自己的用户名和密码去搞,每次操作时,
	git会默认登入你的 用户名和密码,从哪找,从凭据管理器中

	实际,你通过 http 拉代码的时候,git 会去你本地的 windows凭据管理器
	去找 这个 http地址,你的windows凭据管理器 有没有 对应的 网站的
	用户名密码,能登入,找到有,就可以 remote,clone

十三.SSH密钥配置

	1.使用SSH公钥可以让你在你的电脑和码云通讯的时候使用安全
	(git的remote要使用SSH地址)

	2.ssh怎么使用
		1.在 C:\Users\pc 用户下面 创建一个 .ssh,.ssh就放在这里
		
		2.生成了 .ssh 后,会有一串 密钥,你将它 配置到 你的 网站的 ssh配置处即可
		
		3.各种github,gitlab... ,都可以用 这 一个.ssh的 密钥
		(但是有 本地配置多个 ssh密钥,给不同网站配置的场景)
		
		4.实际 就是 你通过 ssh拉 这个网站的仓库的时候,git会去你本地
		.ssh文件去找 密钥,然后去 这个 网站 去找有没有 配置这个密钥
		的用户,有就可以 remote

十四. ssh配置和http配置,都要在你本地 .ssh文件,或者windows凭据管理器,作配置,都得在本地作配置,但是ssh还多了一步,需要在你的 git网站账号页面上 配置 跟你本地.ssh文件 的 ssh密钥 相同的密钥

十五:ssh配置和http配置的区别就是,在账号网页要设置 ssh密钥,而且 网站检查的机制不一样,http 是 网站去找 此网站有没有和 这个window凭据管理器 此网站的 相同的 用户名和密码,ssh 是 网站去找 有没有 和 这个本地.ssh文件 里的密钥 相同 密钥的 用户,有的话,就可以

十六:具体操作

一.准备工作
	1.git下载,配置用户名和邮箱
	2.新建project,存放项目
	
二.git克隆分支
	
	
	git clone -b 分支名(最好clone master分支先) ssh地址

三.开发与推送代码
	1.再你克隆的master分支下新建一个 你需要开发的分支分支: next
		git checkout -b next(此时master , next都指向一个版本)

	2.pull origin next next

	3.写代码,commit

	4.在push之前,都得先pull一下最新版本,以免出现代码冲突
	  push有冲突解决冲突即可(解决完自动commit)

	5.push

十四:git难点
1.在本地 git的工作机制
在这里插入图片描述
在本地,只有工作区,暂存区,和本地库,本地库里面有历史版本,简单来说,工作区就是现在的代码,暂存区只有一个版本,本地库是多个最终版本,也就是说工作区是随着你写代码会实时更新的,暂存区add一次就更新一次,而且只有一个版本,但是本地库你commit一次,就会把暂存区的当前版本commit到本地库,本地库有多个历史版本

版本切换,是指针指向具体版本,首先有一个 head指针,指向具体分支的,具体分支指向 本地库的具体版本,但是这个和现在 暂存区和工作区的代码是什么样的没有任何关系,只需知道,这两个指针,指向本地库的某个历史版本,本地库的历史版本都是不能更新的,只会增加一个版本,或者删除一个版本

然后注意一点,只要版本切换了,或者分支合并了,那么工作区的代码会更新为那个历史版本,只是这个时刻变了,后面工作区的代码改变,跟指针指向哪个版本就没有关系了

在这里插入图片描述分支:分支就是 指针,head ->具体分支指针->历史版本,工作区的代码,在切换分支或者合并分支的那一刻会发生变化

本地库的版本就是一个个的版本,和什么分支没有任何关系

最重要的一点:我们通常说的任何操作,我们都考虑到一个临界点,就是当前正好 工作区没有新东西更改,工作区的代码和本地库的版本一样

切换分支,也只会切换到当前分支的 本地库的历史版本,不会切换到 当前分支的工作区的代码的

所以,我们需要记得 工作区和暂存区,实际都不能算作git,只能说叫做写代码的位置,工作区只有一个,暂存区只有一个,而且他们都只有一种状态,真正 git涉及到的 内存,指针,记录,都是本地库的 历史记录,知道这个就非常好办了

几个问题就可以解决了
1.在创建分支的时候,会从当前分支指向的本地库的历史记录克隆代码,而不是 当前工作区

2.切换分支的时候,head会指向 其他分支的指向的历史版本,此时工作区就会更新
(上述 两个 都不会对 本地库的历史版本由影响,对本地库有影响的只有,commit)

3.合并分支的时候,同样也是 head现在指向的分支指向的版本,和想要合并分支的指向的版本,合并,合并完,解决完冲突后,在add ,commit(注意,这时候commit 不能 指定文件名,只能commit 整个 暂存区)

合并冲突的解决
1.冲突产生的原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替我们决定使用哪一个。必须人为决定新代码内容。
2.git commit时 不能指定文件名
3.commit 完后,本地库出现一个历史版本,这时候 合并冲突才算完全解决 面 MERGING 才会消失,变为正常
4.对我们来说,合并分支只用合并本地分支,也就是说只有在本地合并分支的时候,才会产生合并冲突,远程的合并以及冲突不用我们管

只有加入团队协作,远程库邀请用户,这个用户才能 pull 那个远程库,都是 push和clone 不需要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值