zoukankan      html  css  js  c++  java
  • 版本控制工具--svn和git的使用(三) -----git的使用(2)

    远程仓库
    github是git所用的远程仓库,免费的也有私用的。
    github的账号注册,----省略。
    创建ssh key:
    $ ssh-keygen -t rsa -c 'github的账号'
    查看各个系统的ssh key的路径
    mac 命令行输入: open ~/.ssh
    window 在地址栏输入 C:UsersAdministor 即可看到

    git remote add origin git@github.com.sqh17/one.git 将本地仓库和github的空仓库绑定
    ⚠️注意
    若出现 fatal:remote origin already exists。说明远程仓库已存在,已经和其他的绑定过,输入以下命令:
    git remote rm origin

    下一步,将本地仓库的内容推送到远程库中
    git push -u origin master 将当前的本地库(已commit)推送到远程仓库 -u代表第一次推送时加上,若不是则不用。

    以后本地有任何提交的,想推送,就
    git push origin master

    克隆仓库
    github是开源社区,代码可以下载下来。用两种方式, 一个是下载压缩包的形式,一个就是克隆:
    git clone git@github.com:sqh17/gitTest1.git 后面的是远程仓库的地址。

    分支管理
    git的最大的特点就是分支管理操作。直接从远程拷贝一份到本地就可以开发了,但是为了避免在主分支master开发影响其他开发人员的进度,都会有分支,分支开发完成,在合并到主分支。

    创建分支
    git checkout -b dev 创建分支dev并且切换到dev分支,
    这个相当于两个操作:
    git branch dev 创建分支dev
    git checkout dev 切换到dev分支
    ⚠️注意
    git branch 查看分支 星号代表所在的分支
    master也算分支,主分支。

    合并分支
    在分支dev上开发完成时(先add后commit),需要合并到主分支,再pull到远程,其他开发人员就可以看到自己最新的代码了
    git add ...
    git commit -m '...'
    git checkout master 切换到主分支
    git merge --no-ff -m '合并分支说明' dev 将dev分支和master分支合并起来 (--no-ff -m ''这句话是防止快速合并,以防合并冲突时发生了什么,也可以不用加)
    git branch -d dev 删除dev分支(不是必要的)

    解决冲突
    多人开发中都会出现代码合并导致冲突问题,这是难免的,只能手动去解决冲突。
    何为冲突:
    a开发的分支中有某段代码修改了,并且提交了,b之前没有pull到a最新代码,他也同样改了这段代码,并且提交,git发现这两段代码和远程仓库的代码不一致。这就发生了冲突
    这最根本最根本的解决办法就是及时pull最新代码,但是有时候还是避免不了代码冲突。

    出现冲突的前兆:
    当git merge时会出现以下命令:

    Auto-merging ...
    CONFLICT (content): Merge conflict in ...
    Automatic merge failed; fix conflicts and then commit the result.

    解决办法:
    1.git status 查看冲突的文件
    2.打开冲突的文件,会发现以下代码:
    <<<<<<< HEAD
    -----这是版本库里的内容-----
    =======
    -----这是自己分支的内容-----
    >>>>>>> dev

    3. 根据情况选择对的代码,删除HEAD一行和dev一行以及中间的=====一行,留下有用的。
    4. git add
    5. git commit -m
    6. git branch -d dev
    ⚠️注意
    可以根据git log --graph查看分支图

    临时分支
    在项目开发时,都会有bug出现,我们不得不放下手中的项目,去解决bug,但是当前的项目未完成,不能提交,这时候临时分支就用上了。
    1 git stash 把当前工作现场储藏起来,等恢复现场后再继续工作。
    2 下一步就按照创建分支,合并分支来解决bug即可。
    (git stash list 查看工作现场)
    3 恢复现场有两种方式:stash内容是临时分支的内容?
    a. git stash apply 恢复但stash内容并不删除,要结合git stash drop来删除
    (恢复指定的stash git stash apply stash@{0}
    b. git stash pop 恢复的同时把stash的内容删除。


    多人协作
    查看远程仓库的信息
    git remote -v (-v代表显示更详细的信息)
    如果团队用git开发,那么每个开发人员都会建立自己的分支,在自己的分支上开发,要及时从远程仓库git pull
    步骤:
    1 先git push origin branch-name
    2 如果失败了,是因为远程分支比自己的先更新,则先git pull
    3 成功之后
    4 如果有冲突问题,按照冲突解决办法解决,再提交
    5 最后git push origin branch-name
    ⚠️
    git pull出现no tracking information
    则说明本地分支和远程分支的链接关系没有创建,用命令
    git branch --set-upstream branch-name origin/branch-name

    最后,关于版本控制系统的工具,在此已经复习完了,由于自己是新手,对此操作不是很多,如果有问题或不对的地方,请指出来。

  • 相关阅读:
    span i s等行内元素标签之间出现奇怪空格符号
    使用electron搭建桌面app的简便方法
    antd card 组件实现鼠标移入移出效果
    事物处理
    最近在做支付宝支付,在本地测试一切正常,上传到服务器就遇到报错:
    tp框架报错 Namespace declaration statement has to be the very first statement in the script
    前后端分离开发,跨域访问的apche设置
    thinkphp 同一字段不同查询条件实现
    Redis-server在windows下闪退
    tp volist需要便利两个数组时的处理办法
  • 原文地址:https://www.cnblogs.com/sqh17/p/8467106.html
Copyright © 2011-2022 走看看