Git基本四步曲 项目代码的迭代更替
Git基本四步曲之第一步 Git初始化
首先创建一个项目(文件夹), 右击点击Git Bash Here后打开Git界面输入git init 命令后回车,你就可以看到:
这样就代表你已经初始化好Git了, 然后在你的项目中会生成一个 (.git)的文件夹,不过它在Window系统下默认是隐藏的,你要勾选隐藏的项目才可以看到
Git基本四步曲之第二步 文件添加到暂存区
首先我们要项目中创建一个aaa.txt 文件, 之后我们需要在Git中输入 git add aaa.txt(文件名) 命令把aaa.txt添加到暂存区,然后再输入 git status 命令来查看当前状态
看到查看的状态, aaa.txt 变绿了,就代表你成功把aaa.txt文件提交到暂存区了
Git基本四步曲之第三步 文件提交到本地库,生成版本 注意:生成版本后版本不可删除!!!
在Git中输入 git commit -m “版本1”(文件信息) aaa.txt(文件) 来把你的文件提交到本地库,生成版本, 然后我们在输入git reflog 来查看简略信息
当然你也可以 输入 git log 命令来查看详细的版本信息
Git基本四步曲之第四步 各个版本的相互穿梭(切换,回滚)
我们首先再创建两个文件 bbb.txt 和 ccc.txt ,然后把这两个文件添加到暂存区,提交到本地库生成版本2
首先可以看到我们项目当前是有三个文件的, 接着我们在Git上输入 git reset --hard 版本号 来切换版本, 我们把版本切换到 版本1 ,版本号就是你生成版本后,查看版本时最前面由字母和数字组成的字符 如:50c0695
然后我们就可以看到我们的项目只有一个aaa.txt文件了, 这时我们在输入 git reflog 命令就可以看到当前是版本几了
更多Git概念,安装和详细命令请点击此链接Git入门超详细文档看我上次发的入门Git
Git分支操作
Git 分支操作(杀手功能)
1.几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
2.在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副本。
3.对于大项目来说,这样的过程会耗费很多时间。而 Git 的分支模型是极其的高效轻量的。是 Git 的必杀技特性,也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出
分支本质
Git 的分支,其实本质上仅仅是指向提交对象的可变指针。Git 的默认分支名字是 master。 在多次提交操作之后,你其实已经有一个指向最后那个提交对象的 master 分支。 它会在每次的提交操作中自动向前移动。
注意
Git 的 “master” 分支并不是一个特殊分支。 它就跟其它分支完全没有区别。 之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它,并且大多数人都懒得去改动它
分支的好处
1.同时并行推进对个功能开发,提高开发效率
2.各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始即可
分支命令
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建一个新的分支 |
git branch | 查看当前所有分支的列表(简易版) |
git branch -d 分支名 | 删除分支 |
git branch -v | 查看当前所有分支的列表(详细版) |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前的分支上 |
git branch --on-merged | 查看所有包含未合并工作的分支 |
git log --oneline --decorate | 查看当前分支所指对象 |
git branch name commitHash | 新建一个分支并且使分支指向对应的提交对象 |
Git基本分支六步曲 分支的创建, 切换 , 修改, 合并, 合并冲突, 删除
Git基本分支六步曲之第一步 分支的创建
首先打开Git, 之后在Git上输入 git branch abc 命令, 接着你就会创建一个名为abc新的分支, 最后输入 git branch -v 查看你的所有分支
Git基本分支六步曲之第二步 分支的切换
首先在Git中输入 git branch -v 查看你的所有分支, 接着你再次输入 git checkout abc 命令, 这时你可以看到括号里面蓝色字母从master变成了abc, 最后再次输入 git branch -v 查看你的所有分支, 可以清楚的看到 * 在abc上面, 并且abc变为绿色了, 则就说明你分支切换成功了
Git基本分支六步曲之第三步 分支的修改
首先我们把你自己的项目中的 aaa.txt 文件修改, 之后再输入 git status 命令来查看当前的状态,这时可以看到 aaa.txt 它变红了,说明他没有被追踪,没有被添加到暂存区
接着我们执行把修改后的 aaa.txt 添加暂存区, 提交成一个版本, 最后在查看版本, 这样就完成了分支的修改,相当于在abc分支中创建了一个新的aaa.txt文件
Git基本分支六步曲之第四步 分支的合并
首先我们要把分支先切换到 master 分支 , 之后再执行 git merge abc 命令, 把 abc 分支合并到 ,master分支上,
最后输入 cat aaa.txt 命令可以查看到 aaa.txt 文本里面的内容, 我这里是多了一行 (git 22222222222222222222222222222)
这是你刚刚在abc分支修改aaa.txt文件的内容
注意:合并分支是把指定的分支合并到当前的分支上!!! 所以你要确定好自己的主分支
Git基本分支六步曲之第五步 分支的合并冲突
上面一步是正常的分支合并, 但有一种情况下会产生分支的冲突
原因:合并分支时, 两个分支在同一个文件同一个位置有两套完全不同的修改. Git 无法替我们决定使用哪一个. 这时我们就必须人为决定新的代码内容
首先我们修改 master分支 的 aaa.txt 文件 在最后一行追加一个 master text , 然后添加暂存区, 提交到本地库
之后我们把分支切换到 abc 分支, 然后修改 aaa.txt 文件, 在倒数第二行添加一个 abc text, 然后添加暂存区, 提交到本地库
这时我们的两个分支都修改了同一个 aaa.txt 文件
最后我们再次把分支切换到 master 分支上, 我们在master 分支上来合并 abc分支, 这时你会发现你报的日志不对, 上面显示自动合并失败了, 并且你会发现在新的命令中括号里面的蓝色字母多了一行 MERCING 说明合并正在进行中 ,Git这时不敢自动合并,需要你手动的合并
解决:编辑有冲突的文件, 删除特殊符号, 决定要使用的内容; 提交的时候注意:git commit 命令不能带文件名。
特殊符号: <<<<<<< HEAD 当前分支代码 ======= 合并过来的代码 >>>>>>> abc
首先我们打开 aaa.txt 文件 会看见报错的信息
之后我们要把修改的全部保存, 这时我们就要把在特殊符号内的除了修改过的两行剩下的全部都删掉,最后把特殊符号也删掉,然后保存
然后把 aaa.txt 文件添加到暂存区, 提交到本地库, 然后再输入 cat aaa.txt 命令查看合并后的文件, 发现我们修改的两行都合并到一起了,并且新的命令中括号里面的蓝色字母 MERCING 没有了,说明我们合并成功了 提交的时候注意:git commit 命令不能带文件名。
Git基本分支六步曲之第六步 分支的删除
首先我们先创建一个新的分支 aaa 分支, 然后查看所有的分支
之后我们在Git 中输入 git branch -d aaa 删除命令, 把aaa分支删除掉, 最后再次查看所有分支, 发现aaa分支没有了
注意
注意:Git生成版本后版本不可删除!!!
在解决合并冲突的时候提交时注意:git commit 命令不能带文件名!!!
注意:合并分支是把指定的分支合并到当前的分支上!!! 所以你要确定好自己的主分支