工作原理
一,本地仓库搭建 (初始化)
方法一:git init
方法二:git文件操作
二、git文件操作
git分支中常用指令
# 列出所有本地分支
git branch
# 列出所有远程分支
git branch -r
# 新建一个分支,但依然停留在当前分支
git branch [branch-name]
# 新建一个分支,并切换到该分支
git checkout -b [branch]
# 合并指定分支到当前分支
$ git merge [branch]
# 删除分支
$ git branch -d [branch-name]
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
多个分支如果并行执行,就会导致我们代码不冲突,也就是同时存在多个版本
如果两个人同时修改一个文件,则需要把分支合并
基本命令操作
1. 状态查看 `git status`
命令查看工作区文件是否被追踪(文件状态)
2. 添加到暂存区
git add 文件名
将单个文件添加到暂存区
git add .
将当前目录下所有修改或新增的文件全部添加到暂存区
3. 提交版本库
**git commit**
回车之后会进入到 vim 编辑器中,需要输入这次提交的日志
**git commit -m "这次提交的日志"**
回车之后直接提交了,不会进入 vim 中
**git commit -am**
将工作区的文件提交到版本库中(前提是文件之前被提交过)git add和git commit -m的组合技
4. 查看历史记录
**git log**
列出从当前版本为止全部的提交日志,
如果一屏展示不下,可以使用键盘操作翻页。这时使用 Ctrl + C 退出不了。可以使用 q 来退出
git log --pretty=oneline
以一行的方式来列出
git log --oneline
以一行的方式来列出,commitId 比上一个更简短
git log -<num>
列出最近的 num 条提交日志
git reflog
列出最近git的所有相关操作日志。版本前进时可以参考
5. 版本回退
版本回退的本质:
就是一个 HEAD 指针的操作
**git checkout -- 文件名**
拉取暂存区的**指定**文件将其替换工作区的文件 注意文件名和--之间要有空格空格空格
**git checkout -- .**
拉取暂存区的**全部**文件将其替换工作区的全部修改:
**git reset commitid .**
拉取最近指定版本库中全部到暂存区,该操作不影响工作区
**git reset --hard commitid**
拉取指定**版本库的文件将其替换工作区**的文件
6. 删除文件
**git rm --cached 文件名** 将文件从缓存区删除
7.重命名
mv 文件名 新文件名会将工作区文件进行更名
3. 分支管理
查看分支
查看本地仓库的分支情况
**git branch**
查看远程仓库的分支情况
**git branch -r**
查看本地与远程的所有分支情况
**git branch -a**
4. 创建分支
git branch <分支名字> 只是创建分支
git checkout -b <分支名字> 创建分支,并切换到新创建的这个分支上
5. 切换分支
git checkout <分支名字>
注意:本地如果不存在这个分支,则会把远程的给弄下来,如果远程也没有,就报错
6. 合并分支
先切换被合并的分支上。
使用 git merge <需要合并的分支>
7. 合并时解决冲突
原因:两个分支在同一个代码上的某一个位置做了修改,这些 git 合并时不知道该听那个分支的。
1 找到有冲突的文件
2 删除这个文件中的特殊标记 (<<<<<<<,=======,>>>>>>>标记出不同分支的内容)
3 找到相应的开发人员去商量到底如何处理这个情况,用你的,还是用我的,或者两个都保留
4 git add
5 git commit
8. 删除分支
git branch -d <分支名字> 以及合并过的分支可以这样去删除
git branch -D <分支名字> 没有合并过的分支,但是里面有代码修改,使用 -d 删除,是删除不了的。确定要删除,就是用 -D