Git - 1
版本控制适用场景:
1、备份;
2、代码还原;回滚
3、协同开发;
4、代码追责问题
方式:
集中式版本控制工具(SVN 和 CVS)、
分布式版本控制工具(git)
git 每一台电脑上面都有一个版本库 ==> 分布式
分支和合并
install
安装了git之后,首先需要设置 用户名称和 email 名称
git 版本控制,需要知道什么人做了那些操作,通过邮箱和用户名来实现这个控制
git config --global user.name "xxx"
git config --global user.email "xxx" (这个邮箱可以随便起)
查看配置信息
git config --global user.name
git config --global user.email
init
1、初始化当前目录为一个git仓库 “git init”
2、初始化完成之后在这个目录下面会出现一个 .git 文件夹
(工作区)文件的状态:
未暂存:unstaged (修改了已有的文件)
未跟踪:untracked (新创建一个文件)
经过 git add : 将文件保存在 暂存区(index)
继续执行 git commit :将暂存区的代码提交到 github 中,成了一个 提交记录
工作区 —> 暂存区 —> 仓库
查看状态:git status
文件回退
git reset --hard “commit id number”
fengxuewei@fengxuewei-Legion-Y7000-2019-PG0:~/gitTest$ git-log
* 60698df (HEAD -> master) add file2
* 688c6d1 add file
fengxuewei@fengxuewei-Legion-Y7000-2019-PG0:~/gitTest$ git reset --hard 688c6d1
HEAD is now at 688c6d1 add file
fengxuewei@fengxuewei-Legion-Y7000-2019-PG0:~/gitTest$ git-log
* 688c6d1 (HEAD -> master) add file
同时也可以跳转到回滚之前的代码
git reflog # 将所有的操作都记录下来了
指定某些文件不被 git 进行管理 – .gitignore
使用
git add .
就不会将我们所不希望管理的代码进行上传
分支
# 创建分支
git branch <branch-name>
# HEAD 指向哪一个分支,就是当前的分支
fengxuewei@fengxuewei-Legion-Y7000-2019-PG0:~/gitTest$ git-log
* dbc563f (HEAD -> master) add file03.txt
* 1ad2797 (dev02) ignore
* 688c6d1 add file
分支:一个个体负责一个功能的开发,将开发工作分隔开,相互不影响
# 查看当前分支
git branch # 查看分支
之后合并的时候,将各个分支进行合并
存在多个分支的时候,我们在工作区只能同一时刻对一个分支进行修改
# 切换分支
git checkout dev01
# 创建并切换到该分支
git checkout -b dev02
合并分支
# 两个分支合并,将一个分支合并到另外一个分支上面 一般是 master 上面
# 1、切换到 要合并到的分支上面
git checkout master
# 2、合并
git merge dev01
# 删除分支
git branck -d dev02
# 强制删除
git branch -D dev02
合并了之后就可以将 多余的分支删除掉
解决冲突问题
多人开发,对同一个文件的相同地方都进行了修改,此时出现了冲突 。需要用户自己来解决
先使用 merge 将不是当前的分支合并到当前的分支下面,当出现冲突问题的时候,git会在冲突发生的地方进行标注,手动修改保存,之后 add commit 即可
创建分支dev01: git branch dev01
切换分支: git checkout dev01 (git checkout -b dev01)
touch file02.txt
git add file02.txt
git commit -m “add file02 on dev”
git-log
git checkout master
git merge dev01
git branch -d/-D dev01 (需要删除的分支上面存在没有合并的内容,会进行检查,这个时候若不是误操作,则可以使用 -D 强制删除)