我的Git学习笔记

学习地址

教程:

https://www.runoob.com/git/git-tutorial.html

视频:

https://www.bilibili.com/video/BV1n441157Zt?p=1

明确几个结构

我的Git学习笔记

  • **工作区:**就是你在电脑里能看到的目录。
  • **暂存区:**英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • **版本库:**工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

直接改代码就是该工作区的代码,改完之后add就到了缓存区index,用git status看就不会爆红,相当于到了缓冲区;再commit就到了分支上,用git status看是变蓝,相当于已经加入到版本库。

每次commit都是会有一次记录

如果add错了/commit错了 想回复

https://www.cnblogs.com/arieslee/p/8288223.html

也可以git rm --cached <文件内容>,但他只是清除了缓存区的内容


以上几步操作和空间只是在本地电脑的

如果要推送上GitHub/gitee,需要git push

常用

git init或者再idea里面初始化仓库

到本地:缓存 add 、到 本次仓库 commit

推送到远端GitHub/码云: push

git statues

add ->暂存区—>

commit->master

reset回退

关于key

git上面拉东西 有两种方式:ssh和https

https每次都要输入用户名和密码

ssh就要设置key

输入命令 ll -d ~/.ssh 后你就都明白了。

生成sshkey

https://blog.csdn.net/lqlqlq007/article/details/78983879

https://www.jianshu.com/p/9b5069564281

.gitignore

忽略掉一些文件的提交

如果该文件已经提交了,

从本地缓存rm 然后再提交

vim .gitignore

编辑文件

如果该文件已经提交了,

git rm --cached 命令,删除暂存区,然后再重新add commit

一般git工作流程

1.git 上克隆文件

2.工作

3.add + commit

git push -u origin master

冲突解决

本地修改了代码,远端仓库上也被修改了代码

此时提交 会出现error:你当前是版本不是最新的了

解决

git pull 从远端上拉:可能会有冲突->解决

修改文件 add,commit,重新push

多分支问题

远端仓库上若没有分支1(本地设置好了 已经有了)

推送git push --set-upstream origin branch1

git push --set-upstream origin branch1

创建分支

git branch <分支名字>

git branch <分支名字> -v 查看分支

切换分支

git checkout <分支名字>

创建分支+切换分支

git checkout -b

合并分支

切换到主干分支 git checkout master

git merge

情景1:要把分支1上内容合并到分支2

切换到2:git checkout <2>

在2上合并1:git merge <1>

删除分支

先切换到主分支 git checkout master

git branch -D

git 工作流

[照片来着尚硅谷面试第一期]
我的Git学习笔记

develop 分:feature_goldstyle(功能1),feature_game(功能2);

不同模块开发

develop 是开发分支,应该保持与master分支一致

模拟场景:

我自己的分支是branch1,我就自己一直开发,一直上传带仓库

有一天,我同事新开发的功能上线在master分支,我要拉他的代码和我合并,合并到我的branch1分支。

(注意:其实远程github仓库和本地的仓库,是两个相同但是不相连的结构,即:我同时对代码的更新,我是不可见的,所有我先要去拉他最新的代码)

流程:

  1. 在本地进入master分支,拉最新代码,到我自己本地的仓库
  2. 在本地换回branch1分支,一般自己本地仓库和github仓库是一样的,不用拉。
  3. 在本地的branch1分支,get merge master
  4. 解决冲突,推送上自己的远程仓库