如何将文件交给Git接管
我们写代码的环境称为工作区,在工作区的文件是不能被Git接管的。所以首先需要使用命令git add XXX 将文件添加至版本库中。经过add后的文件存在于暂存区(索引),之后再进行git commit命令将文件提交到Git。才算真正被Git接管了。可以通过git log查看历史提交。
其中objects存放的是每一次修改后的版本。暂存区和master里面存的是一个个的索引,指向不同的文件版本。
如何查看修改
git status: 可以查看哪些文件被修改了。也可以查看是否有未add的文件或者是否有未commit的在暂存区中的文件。如果没有这种文件,就会提示nothing to commit.
git diff XXX : 可以查看XXX文件被修改了哪些内容。
版本回退
使用git reset --soft/mixed/hard ID ,其中soft是只回退版本库的内容,mixed是回退版本库和暂存区的内容,hard是全部回退包括工作区。ID指的是通过git log命令查看得到的commit id。
原理:回退实际就是把指针的指向(指向的是objects里面的内容)改变了。
下面是不同情况下的版本回退以及解决方法:
其中HEAD参数表示回退到当前版本。HEAD^表示回退到上个版本。这个先后版本都是针对版本库里面的数据来描述的。
删除文件
1.使用rm直接删除工作区的文件。
2.使用git rm 文件名的方法删除了工作区和暂存区的数据,之后进行git commit操作后版本库的数据就被删除了。
分支
分支顾名思义就是在本次版本中,开辟出一条“支线”进行开发。在分支中的修改操作不会影响到master分支。相当于是一个副本。若想实现在master分支上看到新开辟分支修改的内容。那么首先需要在新分支上commit之后。切回主分支。使用git merge 分支名 实现合并。
删除分支
git branch -d 分支名,前提是要在主分支上操作。
分支冲突
分支冲突指的就是当多个分支commit之后,master分支也进行了修改。而恰好它们修改的地方一样或者部分一样。那么当git merge之后,就会因为不能决定保留哪个版本的修改而出现冲突。一般情况下需要手动去接触冲突。选择要保留的版本。
分支存在的意义
远程仓库
git push origin +本地分支名:远程分支名 ,将修改推送至远程仓库。
git pull origin + 远程分支名 :本地分支名 ,将远程仓库的新数据拉取到本地。