GIt知识全家桶-----Git的介绍与命令以及GitHub的使用和命令
GIt知识全家桶
版本控制概念:
- 是一种管理或记录文件变化的一种方式
- 人为管理的问题
- 版本混乱
- 操作不便
- 多人协同冲突
git是什么?
是一个版本管理工具,用来给广大程序员管理代码的,下载地址:https://git-scm.com/downloads,安装全部默认,无脑下一步,在文件夹中右击,选择"Git Bash Here",在弹出的窗口中输入“git --version”回车查看版本,输出版本号即为安装成功
git 常用命令
配置用户名和邮箱
git config --global user.name “XXX”
git config --global user.email “aaa@qq.com”
配置全局用户名和邮箱
git config --global user.name “XXX”
git config --global user.email “aaa@qq.com”
Tip: 本地配置,优先级要高于全局配置
查看配置信息
git config --list
删除配置信息
git config --global --user user.name/user.email
初始化本地仓库
git init
查看当前状态
git status
添加到缓存区
git add 文件列表 / git add .
Tip:
- 文件列表多个用空格隔开
- git add . 一次性将当前命令行工作目录下所有的文件提交到缓存区
- 删除缓存区中的文件:
git rm --cached 文件名
//仅仅是从缓存区删除,并不会删除工作目录中的文件;
//也可以用 " git reset 文件名 " 命令代替
// 如果要直接将文件都删除,可以执行命令 git rm --f 文件名(慎用)
git rm --f 文件名 (慎用)
//删除文件,且不会丢进电脑垃圾回收站
将缓存区的文件提交到仓库
git commit -m ‘提交信息’
查看提交记录
git log
Tip
-
版本过多时,按上下键,然后可以按Q键退出
-
git log --oneline, 每个版本记录只有一行
Tip
-
如何用缓存区的文件覆盖工作目录的文件? git checkout 文件名
-
如何将缓存区中的文件回退到上一次修改的版本? git reset 文件名
-
如何从提交记录中恢复? git reset --hard 提交记录ID
a.如果不写提交记录ID,那么默认是最新的版本ID
b.会覆盖缓存区和工作目录
c.恢复后,该commitID之后的提交记录都会被删除
d.加了–hard会直接将文件删除,不会保留,如果需要保留文件,就不要加–hard
分支
查看分支
git branch
创建分支
git branch 分支名
git checkout -b 分支名,可以在创建的时候一并切换到该分支
切换分支
git checkout 分支名
- 切换分支前,需要把工作目录中有变动的文件和缓存区中的文件处理掉,不然这些文件会跟着到切换的这个分支上
- 撤销中也有checkout,在执行这个命令时,git会优先看你跟的是否是分支名,如果是,就执行切换分支操作,如果不是,就看是否是文件名,执行撤销操作
合并分支
git merge 来源分支名
- 这里是将来源分支合并到当前分支,在合并前先确认当前分支是哪个
- 合并后,来源分支并不会删除,还是会存在的
删除分支
git branch -d 分支名
- 分支如果有改动,被合并后才可以被删除,如果还未被合并就想删除,可以使用大写的-D来强制删除
- 不能删除当前分支,必须先切换到其他分支上再来删除
获取远程的新分支
git fetch
暂存区
- 什么是暂存区?
暂时存放文件的地方
所有分支共享 - 如何将文件放到暂存区?
git stash
没有被添加到缓存区中的文件也可以添加到暂存区中
只有被追溯的文件才会被放到暂存区 - 如何从暂存区恢复文件?
git stash pop
这里是恢复到当前分支,所以在恢复的时一定要确认当前分支是不是你要恢复的分支
一旦pop之后,如果没冲突,暂存区的文件就木有了 - 如何查看暂存区中的列表?
git stash list
GitHub
GitHub是什么?
是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub远程仓库
如何将本地仓库的代码推送到远程仓库?
git push 远程仓库地址 本地分支名
- 如果远程仓库的版本高于本地仓库的版本,是不允许本地仓库向远程仓库push的,必须先pull远程仓库后才可以push,所以我们养成在add或者commit之前先pull一下的习惯,如果有冲突是pull不下来的,如果pull不下来,我们先把当前状态放入暂存区,然后再pull,然后再从暂存区弹出之前的状态
- 如果回退至之前的版本时,是push不上去的,因为本地版本比远程版本要低,可以通过“git push -f”强制推送
如何给远程仓库地址起别名?
git remote add 别名 远程仓库地址(origin)
git push时,如何记住远程仓库地址和分支名?
git push -u 远程仓库地址 远程分支名
- 可以通过git branch -vv 查看本地分支和远程仓库的映射关系
如何克隆远程仓库?
git clone 远程仓库地址 项目名 tip:项目可以省略,默认是远程仓库的名字
- 只需要在加入项目开发时执行一次即可
- 克隆会把远程仓库所有者设置的别名和分支映射关系也会一并克隆下来(如果设置了别名,会自动创建一个origin)
如何拉取远程仓库中的最新代码?
git pull 远程仓库地址 远程分支名
-
pull与clone不同,是需要在已有本地仓库的基础上才能执行的
-
拉取不需要身份认证
冲突是怎么产生的?
别人和你修改了同一个文件的同一个地方,并且他比你先push,当你再push时就冲突了
如何解决冲突?
- 第一种方式:先commit,然后push,发现push不上去时,就是有冲突了,这时,先pull一下,然后手动调整好冲突文件,然后再add、commit、push(这种方式不推荐,会产生过多了垃圾版本记录)
- 第二种方式:在commit之前,先pull,如果pull不下来,说明有冲突,这时,我们将当前状态保存至暂存区中,这时仓库已经是干净的了,然后再pull,然后再git stash pop弹出暂存区中的状态,然后再手动整好冲突文件,然后再add、commit、push(推荐使用这种方式,没有垃圾版本记录)
查看分叉图:git log --graph
上一篇: 男人腰酸吃什么好,这些食物很好哦
下一篇: 酱面怎么做好吃,给你介绍方法