git常用命令与详解

1、git与SVN区别

说一下自己的理解,git是分布式版本管理系统,每个PC都是一个独立且完整的版本库,一个人工程的丢失不会造成太大影响,只需远程下载即可,只要提交到远程,大家都可以查看与更新,每一笔提交都会有记录,安全性较高,适用于互联网上多人协作共同维护,甚至没有网络,个人都是可以编辑的,linux上操作较方便;svn是集中式,对网络要求较高,一般适用于局域网,比如一家公司的同一办公区,大家的每一笔提交集中到中央服务器上,因为是局域网,故速率较高,缺点也很明显,如果中央服务器报废,维护就麻烦很多,一般是windows下就可以操作。

2、git命令详解:

先放一张大神的图

git commit:

git branch:

git checkout

git merge:咱两是不同分支就合并,并产生一个新的分支

git rebase:我带我的嫁妆跟你走

这里发现如果当前分支(master)继承有个子节点(比方说是C1,分支叫bugFix),使用git merge bugFix;和使用git rebase bugFix。两者得到的结果一样:使分支bugFix和master一样均指向子节点。

Git merge CC是将分支CC的记录与当前分支合并(是否产生合并,以当前节点是否包含所有提交决定),而git rebase CC是将当前分支的工作复制到CC记录上。

测试:如果当前分支(master)继承父节点(比方说是C1,分支叫bugFix),使用git rebase bugFix则不会产生任何提交,提示“分支已经是最新”;而当前分支(master)有个子节点(比方说是C1,分支叫bugFix),使用git merge bugFix则将使当前分支master和bugFix一样指向C1。

(使用git merge和git rebase从用户角度来看,得到的结果是一样的,只是merge过程中有差异则会产生一笔新的提交,而rebase得到的是线性的结构,而且当前分支所在节点在最后合并的位置上)

HEAD:代表当前的指向——星号“*”

相对引用:^和~

撤销变更:git reset 和 git revert

git cherry-pick

交互式rebase

弹出的UI界面可以选择移动最近4笔提交的顺序,如图所示:

confirm后得到如下结果:

本地栈式提交:

提交技巧1:

提交技巧2:

git tags:

git describe:

选择父提交记录:

多分支处理:

远程仓库:

git clone:将远程仓库拷贝到本地仓库

git fetch:从远程仓库下载到本地

git pull:

git pull:相当于是 git fetch 和 git merge 的合并版

模拟团队合作:

git push:将本地仓库上传到远程仓库

远程服务器拒绝:

猜你喜欢

转载自blog.csdn.net/qq_38915078/article/details/107659175
今日推荐