本文主要是介绍Git的几个重要面试考察点,慎入!!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Git的几个重要面试考察点,慎入!!
文章目录
- Git的几个重要面试考察点,慎入!!
- 1、远程操作命令的区别
- 1.1 git clone <版本库地址> <本地目录地址>
- 1.2 git pull <远程主机名> <远程分支名> : <本地分支名>
- 1.3 git fetch <远程主机名><远程分支名>和git merge <被合并分支名> //表示合并至当前分支
- 1.4 git push <远程主机名> <本地分支名> : <远程分支名>
- 2.git merge和git rebase的重要区别
- 3.git库所在的文件夹中的文件大致有4种状态
1、远程操作命令的区别
- git clone
- git remote
- git fetch
- git pull
- git push
1.1 git clone <版本库地址> <本地目录地址>
- 本地没有项目时,直接使用clone
1.2 git pull <远程主机名> <远程分支名> : <本地分支名>
- 表示取回远程库的分支,再同时与本地分支合并,保持同步
1.3 git fetch <远程主机名><远程分支名>和git merge <被合并分支名> //表示合并至当前分支
- git fetch 表示将远程分支拉取至本地,并在本地生成一个远程分支origin/master
- 其次,可以使用git checkout -b NewBrach origin/master 在他的基础之上创建一个新的分支
1.4 git push <远程主机名> <本地分支名> : <远程分支名>
- 将本地分支与远程分支进行同步
参考文章:http://www.ruanyifeng.com/blog/2014/06/git_remote.html
2.git merge和git rebase的重要区别
最大的区别是:merge只能用于对两个不同分支进行合并,要求两个版本必须保持最新版,无法在回退低版本进行改动时保证后续分支同步更新,而使用rebase就能做到,它通过将旧版本的提交历史以补丁的方式依次将后续分支打上,从而实现更新!
强烈建议参考这篇博文,非常通俗易懂:https://blog.csdn.net/hustpzb/article/details/8686435
3.git库所在的文件夹中的文件大致有4种状态
Untracked:
未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
Unmodify:
文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改,
而变为Modified. 如果使用git ``rm``移出版本库, 则成为Untracked文件
Modified:
文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态,
使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
Staged:
暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态.
执行git reset HEAD filename取消暂存, 文件状态为Modified
Git 状态 untracked 和 not staged的区别
1)untrack 表示是新文件,没有被add过,是为跟踪的意思。
2)not staged 表示add过的文件,即跟踪文件,再次修改没有add,就是没有暂存的意思
这篇关于Git的几个重要面试考察点,慎入!!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!