美文网首页
2018-11-07

2018-11-07

作者: 漂浮的云_32c6 | 来源:发表于2018-11-07 14:15 被阅读0次

    本教程教你从头到尾你操作一遍git,你只需按照步骤进行就好,请你事先准备好一个gitee账号,创建好一个git仓库。

    前言:git的操作的几个方面

    仓库操作

    分支管理

    解决冲突

    版本的回退和前进

    仓库管理

    本地有项目,关联到远程仓库

    打开终端,window打开git bash,进入你想要创建项目的目录或者已将创建项目的目录,执行一下命令。

    git init  初始化git仓库

    git remote add originthttps://gitee.com/huruqing/gitdemo.git关联远程仓库(地址换成你自己的就行)

    git add . 把所有文件添加到版本里

    git status 查看状态

    git commit -m'备注信息'  提交修改

    git commit -a -m"备注信息"  add和commit连着写

    git push origint master 会出现下面的错误提示

    一般是由于远程仓库上有内容,解决的办法有两种:

    git push origin master -f

    本地强制上传到远程,把远程的覆盖

    git pull --rebase origin master

    拉取远程的文件把本地的覆盖,再上传

    git push origin master -u 加上-u后面再提交只需要git push就可以了,不需要再加上分支名称

    本地没有项目

    git clonehttps://gitee.com/huruqing/gitdemo.git@git把远程的仓库克隆到本地。

    进行像上面的那些仓库操作,不过首次提交的时候就不需要加 -f,因为你是直接clone的项目

    其他操作

    git remote remove origin 取消远程仓库关联

    rm .git -rf  删除仓库

    分支管理

    git checkout -b dev  创建并切换到dev分支

    git branch查看分支

    git checkout master 切换分支到master

    git merge dev -m"合并分支到主干" 合并分支dev到master

    把主干代码同步到分支

    git checkout dev 切换到分支

    git merge master -m"合并主干到分支"

    如果出现 fatal: refusing to merge unrelated histories,意思是这两个分支没有共同的祖先,需要这样去合并或者拉取

    git merge dev --allow-unrelated-histories

    git branch -a 查看所有分支

    git fetch origin dev:dev  把远程分支dev同步到本地分支dev

    git branch -d dev 删除dev分支

    git push origin -d dev 删除远程的dev分支

    冲突处理

    由于多人同时进行开发,有时候会同时修改一个文件,或者多分支开发,合并的时候就很容易引发冲突,下面是一个制造冲突和解决冲突的例子。

    为了方便我们看得清楚,把所有内容删除

    在master分支,创建index.js

    // index.js// 创建对象functionPerson(name, age){this.name = name;this.age = age;}varp =newPerson('张三丰',100);

    git checkout -b dev 创建分支dev ,这时候主干和分支的代码都是一样的

    制造冲突

    把分支上的代码改成下面这样子,然后提交并推送

    // 工厂模式functionPerson(name, age){varobj =newObject();    obj.name = name;    obj.age = age;returnobj;}varp = Person('张三丰',100);

    把主干代码修改成下面这样子的,然后提交并推送

    // 创建对象functionPerson(name, age){this.name = name;this.age = age;}Person.prototype.say =function(){console.log(this.name);}varp =newPerson('张三丰',100);

    合并dev分支到主干 git merge dev -m"xxxx"

    冲突出现,代码如下:

    // 工厂模式functionPerson(name, age){varobj =newObject();    obj.name = name;    obj.age = age;returnobj;}<<<<<<< HEADPerson.prototype.say =function(){    console.log(this.name);}varp =newPerson('张三丰',100);=======varp = Person('张三丰',100);>>>>>>> dev

    其中<<<<<<<  和 =======之间的代码是当前分支(也就是master分支)的修改,=======和>>>>>>>之间的代码是dev分支上的修改

    我们需要根据我们自己的情况去消除冲突,我们可以选择保留主干上的修改或者是分支上的修改。消除冲突之后,再执行添加、提交、推送的动作。

    版本的前进和回滚

    git log 和 git log --pretty=oneline 查看版本信信息

    image.png

    如果我们要回退到aaa这次操作提交上来,我们只需要将id复制一下,然后执行下面命令即可,版本的id每个人都会不一样

    git reset --hard e55640863f0eb141e0857761f0268c61121c07ac

    版本回退之后,如果想再回到现在,你只需要记住你要回到的id即可使用同样的命令回到现在

    如果不记得版本id,还可以使用git reflog来查看你提交的历史记录,从中找到版本的id,再进行reset操作

    其他

    每次git push我们都需要输入账户密码比较麻烦,想要免掉这一步,请看文章

    码云gitee添加公钥

    作者:儒清

    链接:https://www.jianshu.com/p/622938e19e42

    來源:简书

    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    相关文章

      网友评论

          本文标题:2018-11-07

          本文链接:https://www.haomeiwen.com/subject/hthvxqtx.html