引言:看了B站大佬『Git』知道这些就够了_哔哩哔哩_bilibili的视频后,总结了以下关于GIT的知识点
git init(初始化仓库)
会在当前目录下生成一个隐藏文件夹 .git 这个所在的文件夹就是仓库 它会记录你所有的变更行为
git status(查看当前仓库信息)
git add 文件名 (将单文件加入暂存区)
再用git status查看后会变绿
git add. 将当前所有文件加入暂存区
git commit -m ‘描述 ’(提交当前变更)
只提交绿了的文件
git log (查看日志 )
什么人在什么时间提交了什么东西 也有个commit 这个commit是个字符串形式 有唯一性
当变更了文件时,要先git add将文件变绿 在使用 git commit提交到仓库
git reset 文件名 (回退状态)
(add后后悔添加了,用reset 来把绿名变红名)
git reset (回退版本)
有三种模式 --hard 不保存所有变更 --soft 保留变更且变更内容处于Staged --mixed保留变更且内容处于Modified
如果想回退版本 找到你想回退版本的commit ID 然后通过git reset
如果又后悔打算回到最新的 可以通过
git reflog 查看所有操作记录 找到你想回退的commit ID 在使用git reset回到最新版本
git有四种文件状态
untracked 开始的 当他修改后会到Staged
unmodified 未修改的 当他修改后 回到Modified 如果取消修改会到untracked
Modified 修改的 当他 stage the file 会到Staged
Staged 上演的 当他commit 提交后会到unmodified
自定义git命令
打开git文件gitconfig 设置自己的alias ad=add .
分支
当仓库初始化时会默认有个maset默认分支,通常我们作为主分支
git checkout <name>分支名 <template>分支模板
如果不设置分支模板则会默认使用maset主分支进行模板化
如果分支模板不是本地的就要在分支名和分支模板中加个origin
git checkout <name>分支名 origin <template>分支模板
如果想改变拉取过来的分支名也可以
git checkout <name>分支名 bc-b(更改名) origin <template>分支模板
使用git checkout 分支名 也可以切换分支
git branch 查看所有分支
git merge 名字 (合并分支)
当有一个分支要做两个不同功能,小A做一个,小B做一个,现在功能都做完了,都通过了git add。 和git commit进行上传 现在小C要合并代码,切换要合并的分支然后开始合并通过git merge 分支名,分别合并了小A和小B的代码 这时候如果有冲突的话,可以手动解决冲突(由自己保留哪些代码 然后手动commit)
commit是整个流程最核心的概念,所有工作都是围绕commit展开的
远程仓库
因为需要一个中央仓库来管理所有分支,不可能放一个人电脑里 因为另一个人切不到小A分支
小A创建好分支后可以push给远程仓库 然后小B可以拉取远端仓库的信息(fetch)之后小B就可以切换分支了
git clone (克隆)
使用git clone将远程仓库下载至本地 然后本地都有仓库的文件夹
当push当前分支可能会弹出错误,没有上流分支,是因为远程仓库并没有这个分支,这个时候就可以使用
git push -set-upstream(设置上流分支) origin(远程仓库) 分支名来实现
然后使用push 就可以将本地变更推送远端
如果现在小B想用小A分支,就可以使用git fetch 拉取远程仓库信息
git push (上传分支)
git branch 查看本地分支
git pull (更新分支)
等同于 先fetch再自动merge 从远程仓库拉取代码更新到本地分支
rebase (变基)
如果主分支是125 而分分支是1234 这个时候想让分分支变成12534可以使用rebase
git rebase --continue
常用的一些git命令暂时总结到这里,如果有常用的其他一些命令欢迎大佬补充