初始仓库
git init
初始化完成会提示initialized empty Git respository
提交代码
git add 文件名
git commit -m 提交信息
提交的文件名必须在你初始化的git仓库中存在,如果不存在会提示not match any files
上图说明没有1.js
文件,需要新建一个1.js
文件再提交
第一次提交会默认提交到master分支上,在没有提交之前是没有master分支的。
接下了要了解一下我们提交代码要经历哪些过程:
- 没有通过
git add 文件名
提交的文件在工作区 - 执行了
git add 文件名
但没有通过git commit -m 提交信息
提交的文件在暂存区 - 执行完了
git commit -m 提交信息
提交的的文件在历史区
三个地方都有代码,如果某次修改了文件,还可以回退到上一次提交的版本。
回退版本
之前操作是建立了一个空的1.js
文件并提交到了master分支上,现在在该文件中写入var a = 1;
的代码。如果要返回我之前那次空文件的状态,可以执行git checkout 文件名
命令。如果你已经执行了git add 文件名
的操作,可以执行git checkout 版本号 文件名
。
如果你已经执行了了git add 文件名
和git commmit -m 提交信息
,也可以执行git checkout 版本号 文件名
来回退到之前的版本。
关于如何查看版本号只要输入git log
即可。
git add 文件名
的操作)
在历史区回退代码(也就是该文件执行了git add 文件名
和git commmit -m 提交信息
的操作)
解决冲突
代码冲突大多是建立了多个分支,如果代码合并的时候有冲突要自己手动解决。
通过git branch 分支名
创建分支
git branch dev1
创键了dev1分支,再通过git branch dev2
创建了dev2分支,这两个分支都是基于master分支创建的,所以现在dev1和dev2会有master分支的所以代码。接下来就是分别切换到到各自的分支上工作。
通过git checkout 分支名
切换分支
我通过git branch dev1
切换到dev1分支,在1.js写入代码var a = 1;
然后提交代码通过git add dev1
和git commit -m 在dev1提交
git branch dev2
切换到dev2分支,在1.js写入代码var b = 1;
然后提交代码通过git add dev2
和git commit -m 在dev2提交
现在切换回来mater分支,因为刚才是基于master分支创建,master是主分支,在主分支中合并。
通过git merge 分支名
合并分支
git merge dev1
合并了分支dev1会提示Fast-forward
我通过git merge dev2
合并分支dev2会提示CONFLICT
,出现冲突了。
打开1.js文件解决冲突,出现如图提示
选择性删除代码,留下需要的代码解决冲突后需要从新提交代码即可。