zoukankan      html  css  js  c++  java
  • git版本管理工具学习(二)

    连接远程仓库

    1. 注册github

    2. 创建SSH Key:ssh-keygen -t rsa -C "youremail@example.com"   -》生成.ssh目录,里面有id_rsa(私钥)id_rsa.pub(公钥)

    3. 将公钥添入 Github SSH Key (SSH Key可以有多个,方便多台电脑使用一个账户管理一个仓库)

    4. 在Github中创建Repository,最好与本地同名

    5. 把一个已有的本地仓库与之关联 : git remote add origin git@github.com:UserName/RepositoryName.git

    6. 把本地库的所有内容推送到远程库:git push -u origin master (由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。)

    从远程仓库克隆
    • git clone git@github.com:michaelliao/gitskills.git
    • GitHub给出的地址不止一个,还可以用https://github.com/michaelliao/gitskills.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令

    分支管理

    •  基本操作(HEAD指向当前分支,master主分支)
      • 创建新的分支并切换:git checkout -b dev
      • 查看分支:git branch
      • 切换分支:git checkout master
      • 合并指定分支到当前分支:git merge dev (当没有冲突时默认使用FastForword模式,即删除分支后会丢掉分支信息,使用--no-ff禁用FF模式)
      • 删除分支:git branch -d dev
    • 解决分支合并冲突
      • 手动解决,自动合并失败后,Git用<<<<<<<=======>>>>>>>标记出不同分支的内容,通过手动解决后,再add+commit实现合并
      • 查看图结构:git log --graph --pretty=oneline --abbrev-commit
    • 分支使用策略
      • master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面工作
      • dev分支用于开发,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本
      • 开发者每个人在dev上有自己的分支
    • Bug分支(在开发过程中,你需要暂停当前分支的工作,而建立新的分支处理bug等问题)
      • 可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:git stash
      • 查看工作现场列表:git stash list
      • 恢复现场:git stash apply stash@{0}(不在list中删除),git stash pop(自动删除list中记录)
    • Feature分支:新功能最好在新的分支中开始
      • 丢弃没有合并的分支(强制删除):git branch -D feature
    • 多人协作
      • 查看远程仓库信息:git remote -v
      • 推送本地分支到远程:git push origin master (主分支,开发分支需要同步到远程,其他视具体情况而定)
      • 从远程仓库clone,默认情况下,只能看到本地的master分支,创建远程origindev分支到本地:git checkout -b dev origin/dev,建立连接:git branch --set-upstream dev origin/dev
      • 解决推送失败问题:当多人修改了远程仓库的内容时推送会产生冲突
        • 先用git pull把最新的提交从origin/dev抓下来
        • 手动解决本地合并冲突
        • git push origin dev

     标签管理

    1. 切换到要打标签的分支
    2. 打标签:git tag <tag_name> [commitId] -m "comment"
    3. 查看标签:git show <tag_name>
    4. 删除标签:git tag -d <tag_name>
    5. 推送标签到远程:git push origin <tag_name>/--tags
    6. 删除远程标签:git tag -d <tag_name>   git push origin :refs/tags/<tag_name>

    自定义Git

    • 忽略某些文件时,需要编写.gitignore
  • 相关阅读:
    win7(64)未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序的解决办法
    很方便的工具——代码生成工具之Winform查询列表界面生成
    程序员十几个常用网站
    优秀程序员不得不知道的20个位运算技巧
    unset()索引数组
    git 撤销修改
    git 版本回退
    git 命令详解
    git多账户配置
    Git的.ssh文件夹的内容
  • 原文地址:https://www.cnblogs.com/HectorHou/p/5973671.html
Copyright © 2011-2022 走看看