• Git基础


    Git管理代码的架构###

    Git采用分布式管理控制系统,没有中央服务器,每个人的电脑上都有一个完整的版本库,不需要联网就可以工作,只需要将各自的修改推送给对方(有一台充当“中央服务器”的电脑,为了方便交换修改。)

    特点:不需要联网,安全性高,速度快

    而相比于Git,CVS/SVN都采用集中式版本控制系统,每次需要从中央服务器获取最新的版本,干完活后再把更新后的版本推送到中央服务器,因此每次工作必须联网,且工作效率受到带宽的限制。

    特点:需要联网,安全性低,速度慢

    Git常用命令###

    • 创建版本库
      • mkdir learngit
      • cd learngit
      • git init
    • 添加文件(文件放在learngit目录或其子目录下)
      • git add readme.txt (进暂存区)
      • git commit -m "description" (进分支)注意每次commit最好写上描述方便以后知道每个版本的含义
    • 随时掌握工作区的状态
      • git status
    • 查看修改了什么内容
      • git diff readme.txt
    • 修改后提交
      • git add readme.txt
      • git commit -m "description"
    • 查看历史版本
      • git log --pretty=oneline
    • 回到上一版本
      • git reset --hard HEAD^
    • 去到任意版本
      • git reset --hard commit-id
    • 查看历史操作
      • git reflog
    • 撤销修改
      • git checkout -- file 到上一次add或commit的版本
      • git reset HEAD file 撤回到到工作区 git checkout -- file 丢弃修改
    • 删除
      • git rm test.txt
      • git commit
    • 将本地库与远程库关联
      • git remote add origin git@github.com:server-name/learngit.git
    • 推送修改
      • git push -u origin master(第一次) 将本地的推送到远程库
      • git push origin master
    • 克隆仓库
      • git clone
    • 从远程抓取分支
      • git pull
    • 创建并切换分支
      • git checkout -b dev
    • 查看分支合并情况
      • git log --graph --pretty=oneline --abbrev-commit
    • 查看分支
      • git branch
    • 合并指定分支到当前分支(得先切换到合并分支)
      • git merge dev
    • 删除分支
      • git branch -d dev
    • 多人协作:

    常见问题汇总###

    1. 回退到之前版本后再次提交需要注意,若直接提交将会脱离之前的轨迹,别人在此分支上也找不到之后提交的版本,应该新建一个分支提交后将之前的分支合并到新分支上,解决冲突后再提交,最后删除原来分支,这样既保留了原来的版本,也将新版本和原版本都合并到了一个分支上。
    2. merge和rebase的区别
      若远程分支和本地分支各有两次最新的提交
      • merge:将两个分支上的东西合并,结果看起来像一个新的“合并的提交”。
      • rebase:先将mywork中的每个提交都取消,并将它们临时保存为补丁(放在".git/rebase"目录中),然后把mywork分支更新为最新的origin分支,最后把保存的这些补丁应用到mywork分支上。
      • 当mywork分支更新以后,它会指向新创建的提交,老的提交会被丢弃,如果运行垃圾收集命令,这些被丢弃的提交就会被删除。
      • 当我们使用Git log来参看commit时,其commit的顺序也有所不同。
      • 假设C3提交于9:00AM,C5提交于10:00AM,C4提交于11:00AM,C6提交于12:00AM
      • 对于使用git merge来合并所看到的commit的顺序(从新到旧)是:C7,C6,C4,C5,C3,C2,C1
      • 对于使用git rebase来合并所看到的commit的顺序(从新到旧)是:C7,C6,C5,C4,C3,C2,C1
  • 相关阅读:
    JavaScript
    css-装饰
    html 标签
    remote connect openshift mysql
    MySQL
    how to run a continuous background task on OpenShift
    openshifit 安装 redis
    Python之路,Day6
    选择排序
    C语言实现链表
  • 原文地址:https://www.cnblogs.com/LeonNew/p/5274581.html
Copyright © 2020-2023  润新知