代码管理工具之Git
2020-04-14 本文已影响0人
在error边缘疯狂试探
Git的四大工作区域
- 工作区:即文件存在的物理地址,存在电脑硬盘的地址。
-
暂存区:通过
git add
添加的文件的相关文件的信息(文件名、大小、timestam... ),不保存文件实体,通过id指向每个文件的实体。可以使用git status
查看暂存区的状态。暂存区标记了你当前工作区中,哪些内容是被git管理。 - 本地仓库:保存了对象提交过的各个版本,比起工作区和暂存区的内容,它要更旧一些。
- 远程仓库:远程仓库的内容可能被分布在多个地点的处于协作关系的本地仓库修改,因此他可能与本地仓库同步,也可能不同步,但是他的内容是最旧的。
Git使用的基本操作
- 设置签名
- 设置签名:
git config user.name
git config user.email
(局部签名,适用于该项目) - 全局签名:
git config --global user.name
git config --global user.email
- 设置签名:
- 状态查看操作:git status
- 添加操作:git add(将工作区的“新建/修改”添加到暂存区)
- 提交操作:git commit -m “写一些提交注释”【file name】--->【】不用写
- 查看历史记录:git reflog(显示全部)/git log --oneline(只显示局部历史)/git log(查看历史版本)
- 多屏显示控制方式:
- 空格向下翻页
- b 向上翻页
- q 退出
- 进入哪个历史记录:(其实就是回退或前进到哪个版本)
git reset --hard 【局部索引值】 索引值是那个哈希码 git reflog 下的第一个显示的值 - 删除文件并找回:
- 前提:删除前,文件存在时的状态提交到了本地仓库。
- 删除操作:
1. git rm 【文件名】
2. git add【文件名】(把操作通知到暂存区)
3. git commit【文件名】(把操作通知到本地仓库实现删除)
- 文件找回:
直接使用git reset --hard [索引值] (即回退到以前的版本)
- 比较文件差异:
git diff【文件名】(将工作区中的文件和暂存区的文件进行比较)
git diff【本地仓库的历史版本】【文件名】(将工作区中的文件和本地仓库中文件比较)
git diff HEAD(不指定文件名会比较所有有差异的文件)
分支管理
- 创建分支:git branch 【分支名】
- 查看分支:git branch -v
- 切换分支:git checkout 【分支名】
- 合并分支:
- 1.切换到接受修改的分支上(切换到主分支上接受其他分支)
- 2.执行git merge 【分支名】进行合并
- 解决冲突:
(当两个分支修改同一个地方时就会产生冲突)
1. 编辑文件删除特殊符号
2. 把文件修改到满意的程度,保存退出
3. git add 【文件名】
4.git commit -m “...” (注意:这里不需要再写文件名了,否则会报错!)
-
git remote -v:查询已经记住的GitHub仓库的地址
-
git remote add 别名 地址:让他记住GitHub的地址
-
推送:
git remote add 别名 【远程分支的HTTPS地址】------(也可以用ssh免密模式,不太会用)
git push 别名 分支名 如:git push orgin master
- 克隆:
- git clone 仓库的远程地址https
克隆的效果:
完整的把远程库下载到本地
创建origin远程地址别名(origin 是别名,是固定的)
初始化本地仓库
- 拉取:
pull = fetch + merge(如果不用审查,就直接用pull)
git pull 【远程库地址别名】【远程分支名】
git fetch 【远程库地址别名】【远程分支名】---(fetch是用来查看别人提交的代码,对其进行审查)
git merge【远程库地址别名】/【远程分支名】---(审查过后可以,则进行合并)
- 解决冲突(GitHub版):
如果产生冲突,要求用户必须先要pull下来
然后进行自己的修改,最后push上去。