1.配置全局用户
$ git config --global user.name "ljybb"
$ git config --global user.email "15592277810@163.com"
2.创建一个仓库
git init
一个项目表示一个仓库
3.git的三个区域
工作区:git_study
暂存区:.git/index
版本库:.git/objects
4.git文件状态
未跟踪:新文件,从未被 Git 管理过
已跟踪:Git 已经知道和管理的文件
git status -s查看文件状态
第一列是暂存区状态,第二列是工作区状态
5.git restore 文件相对路径
从暂存区覆盖掉工作区的代码
(在暂存区中找到相同路径名的文件,覆盖回来,如果工作区没有同名文件,就在工作区新建,如果有,覆盖掉)
6.git rm --cached 文件相对路径
取消暂存
(在暂存区中找同名文件)
7.git log --oneline、git relog --oneline
查看在版本库中的提交历史
8.git reset
git回退版本,先恢复到暂存区,然后辐射到工作区
三种模式:区别在于,如当前工作区和暂存区由html和css文件,但要恢复的版本库中的版本只有html文件,那么对于当前工作区和暂存区中的css文件的处理情况
(1)git reset --sort 版本号 css文件都还在
(2)git reset --hard 版本号(最常用)css文件都不在了
(3)git reset --mixed 版本号(默认)css文件在工作区中存在,在暂存区中删除
9.忽略文件
(1)在项目根目录下新建名为'.gitignore'的文件
(2)在'.gitignore'文件中输入要忽略的文件或文件夹
如果要忽略test.js文件,则直接输入的是test.js也就是文件名,那么项目目录中该文件显示灰色
(3)'.gitignore'文件也应该被放在版本中,所以执行git add .和git commit -m '增加文件忽略'来新产生一个版本
10.分支
创建分支命令:git branch '分支名'
切换分支命令:git checkout '分支名'
合并子分支:git merge '分支名'(切换到master分支之后操作)
删除已经合并的字分支:git branch -d '分支名'
(ps:然后我发现,在分支中如果修改了master中的文件内容,合并该子分支后,master分支中的该文件相应地改变了,这或许提供了发生冲突的可能性)
(然后试验一下,分别在两个子分支中修改main.html,然后依次合并,合并第二个子分支时出现问题,如图:
冲突解决之后,要执行add和commit操作,才算合并成功)
工作区准备代码并暂存提交,重复3次
head指针影响工作去/暂存区的代码状态
11.远程仓库
总结
git -v <!--查看git版本--> git init git add . git add 文件相对路径 git commit -m '注释说明' <!--每次提交,把暂存区内容快照一份--> git status -s git ls-files <!--查看当前暂存区文件列表--> git restore 文件相对路径 <!--从暂存区覆盖到工作区--> git rm --cached 文件相对路径 <!--取消暂存--> git reset <!--回退版本--> git branch git branch '分支名' git checkout '分支名' git checkout -b '分支名' <!--新建并且切换--> git merge '分支名' <!--合并子分支--> git branch -d '分支名' <!--删除子分支--> git remote -v <!--查看要推送到的远程仓库是哪个--> git remote add origin https://gitee.com/logic0919/my01.git <!--设置要推送到的远程仓库--> git remote remove origin <!--取消原本设置的推送到的远程仓库--> (本地分支名):master(远程分支名) <!--推送--> git pull <!--拉取--> git clone https://gitee.com/logic0919/01git_study.git <!--从远程仓库克隆项目到本地-->