zoukankan      html  css  js  c++  java
  • Git整理篇之02中级操作

    一、创建远程仓库

    登录github,创建一个仓库
    地址为:git@github.com:yangphp/gitTest.git

    二、生成SSH Key

    1、生成SSH key

    由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:
    使用以下命令生成 SSH Key:

    ssh-keygen -t rsa -C "youremail@example.com"

    your_email@youremail.com 改为你在 Github 上注册的邮箱
    之后会要求确认路径和输入密码,我们这使用默认的一路回车就行
    成功的话会在 ~/ 下生成 .ssh 文件夹,进去,打开 id_rsa.pub,复制里面的 key

    2、添加SSH key

    a、复制 id_rsa.pub里面的内容
    b、打开github 点击右上角的头像 然后点击Settings
    c、左边点击SSH and GPG keys 然后点击 New SSH key 按钮,
    title 设置标题,可以随便填,粘贴在你电脑上生成的 key
    点击 add ssh key 添加

    3、测试是否添加成功

    a、在git bash中输入

    ssh -T git@github.com

    b、如果出现

    Hi xxxxxx! You've successfully authenticated, but GitHub does not provide shell access.
    则表示连接成功了

    三、关联远程仓库

    本地关联远程仓库

    git remote add origin git@github.com:yangphp/gitTest.git
    git remote -v #查看远程库

    首先运行拉取命令

    git pull --rebase origin master

    首次本地库的所有内容推送到远程库上

    git push -u origin master

    加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来

    本地库的所有内容推送到远程库上

    git push origin master

    删除远程仓库

    git remote -v #查看远程库
    git remote rm origin #删除远程库和本地库的连接
    注:只是删除关联,并没有删除远程仓库

    四、clone远程仓库

    1、git clone 和 git pull 的区别
    clone是将一个库复制到你的本地,是一个本地从无到有的过程。
    pull是指同步一个在你本地有版本的库内容更新的部分到你的本地库。

    git clone是远程操作的第一步,通常是从远程主机克隆一个版本库。
    git pull 作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。

    2、使用场景:
    本地修改代码后,每次从本地仓库push到远程仓库之前都要先进行git pull操作,保证push到远程仓库时没有版本冲突。

    3、git clone

    git clone git@github.com:yangphp/gitTest.git

    需要注意GitHub给出的地址不止一个,还可以用https://github.com/ 这样的地址
    实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。
    使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,
    但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https

    五、分支管理

    创建并切换分支

    git checkout -b devuser01 #命令加上-b参数表示创建并切换

    创建分支

    git branch devuser01

    切换分支

    git checkout devuser01

    查看分支

    git branch

    合并分支

    git checkout master #切换回master
    git merge devuser01 #将devuser01分支内容合并过来

    git merge --no-ff -m "merge with no-ff" devuser01
    合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

    合并后没问题就可以删除分支

    git branch -d devuser01

    推送分支内容到远程仓库

    git push origin master #推送主分支
    git push origin devuser01 #推送分支devuser01

    删除远程分支

    git branch -a #查看所有分支
    git checkout master #将分支切换到master上面
    git push origin --delete devuser01 #删除远程分支devuser01

    分支应用场景:
    首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
    那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的。
    到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
    你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

    六、冲突解决

    手动修改内容后,重新提交即可

    1、先创建分支 devuser01
    git checkout -b devuser01

    2、修改分支上面 git011的内容并提交

    git add git011_conflict.txt
    git commit -m 'change git011 content'

    3、切换分支并修改git011内容
    git checkout master
    git add git011_conflict.txt
    git commit -m 'test solve conflict'

    4、合并解决冲突
    git merge devuser01 #可以看到提示git011_conflict.txt 冲突了

    修改 git011_conflict.txt 并解决冲突后
    git add git011_conflict.txt
    git commit -m 'solve conflict'

    5、查看分支合并情况
    git log --graph --pretty=oneline --abbrev-commit

    6、删除子分支 devuser01
    git branch -d devuser01

    但行好事,莫问前程!

    本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/15374478.html

  • 相关阅读:
    LED显示屏设备智能监控运维管理解决方案
    网络监控系统七大开源工具分析
    银行设备综合监控运维管理解决方案
    柯南「云断案」不再难,身在何处都如亲临现场
    七牛云联合云上钢琴,推动智慧教育生态繁荣
    七牛云联手开泰银行,加速等保 2.0 合规落地
    【七牛云X创客匠人】知识付费私域流量场中的技术实践
    七牛云正式加入 CNCF,积极推动云原生全球发展
    Protocol buffer 编码和解码 谷歌 整数变长编码
    mybatis利用动态SQL进行模糊查询遇到的问题
  • 原文地址:https://www.cnblogs.com/ypeih/p/15374478.html
Copyright © 2011-2022 走看看