zoukankan      html  css  js  c++  java
  • git小结-ms

    目录

    1、git是什么

    2、git怎么工作的

    3、git常用命令

    4、git提效工具

    5、git的技术用语


    1、git是什么

    git是开源的分布式的版本控制系统,可以有效、高速地处理的项目版本管理。
    git中存储是变更信息,而不是整个文件。

    总结git的两大特点:

    版本控制:可以解决多人同时开发的代码问题,也可以解决单人开发时找回历史代码的问题。
    分布式:多台机器互为备份,同一个Git仓库,可以分布到不同的机器上。可以自己搭建这台服务器,也可以使用GitHub网站、gitee网站(属于osChina)、coding网站。

    2、git怎么工作的

    git的工作原理如图所示

    3、git常用命令

    命令和操作大全
    部署git和git常用命令
    1、创建公钥(3次Enter)
    ssh-keygen -t rsa -C  git@gitee.com:andy9468/ttsx_sz3.git
    错误处理
    eval "$(ssh-agent -s)"
    ssh-add
     
    2、克隆
    git clone git@gitee.com:andy9468/ttsx_sz3.git
     
    3、查看所有分支
    git branch
     
    4、创建dev分支(创建分支会克隆当前分支的开发进度和状态)
    git branch dev
     
    5、删除分支(删除分支前,先切换到其他分支)
    git checkout itcast1
    git branch -d itcast22
     
    6、将本地的当前分支推送到远程
    git push origin dev
     
    7、跟踪分支
    作用是:使得本地的dev被用于跟踪(就是和远程的dev对比)
    执行本命令前,需要向执行6,即把本地dev推送到远端dev
    git branch --set-upstream-to=origin/dev dev
     
    8、创建并切换到新分支
    git checkout -b itcast1
    小结:
    (1)检查当前分支和远程分支的版本提交落后关系。
    git checkout
    (2)切换到分支itcast2
    git checkout itcast2
    (3)创建并切换到新分支
    git checkout -b itcast1
     
    9、将远程dev分支同步到本地(本地不需要自己新建dev2分支)
    git checkout -b dev2 origin/dev
    将远程itcast1同步到本地(本地不需要自己新建itcast1分支)
    git checkout -b itcast1 origin/itcast1
     
    10、被跟踪的dev还可以用pull同步到本地(先本地新建dev分支)
    git checkout -b dev
    git pull
     
    本地已经有dev分支和项目文件时,同步到本地的命令过程:
    git checkout dev
    git pull origin dev
    git reflog
    git reset 10e2148
    git checkout -- .
     
     
    11、查看工作区、缓冲区的被修改但还未提交(git commit)的文件
    git status
    或者(简要输出)
    git status -s
     
    12、添加到缓冲区(完成一个文件,git add 一下)
    git add .
     
    13、提交到本地版本库(完成一个业务逻辑,git commit一下)
    git commit -m '部署框架'
    如果没有新建的文件。可以不单独add,一次性提交:-a -m
    git commit -a -m "Changed some files"
    千万注意,-a不会造成新文件被提交,只能修改。
     
    14、将本地版本库推送到远程服务器(服务器相当于U盘)
    就是将本地分支推送到服务器
    git push origin itcast1
     
    15、将分支itcast1合并到公共分支dev
    git checkout dev
    git merge itcast1
    git push origin dev
     
    常见的合并过程
    (1)合并分支(第一个人的合并):
    git status
    git checkout dev
    git merge itcast1
    git push origin dev
     
    (2)第二个人开始合并分支前,需要先下载第一个人合并分支后,推到远程的dev分支
    git checkout dev
    git pull
    git merge itcast2
     
    (3)这步后,如果产生冲突,找写代码的人商量,决定怎么删留改。
    处理bug,最好建立一个bug001分支(从需要改bug的分支,创建并切换到bug001分支)
    git checkout dev
    git checkout -b bug001
     
     
    (4)修改处理bug,并合并,推送
    1)在分支bug001下,改好后:提交本地
    git add ./
    git commit -m '解决冲突01'
     
    2)并开始合并分支
    git checkout dev
    git pull
    git merge --no-ff -m '解决冲突01' bug001
    说明:
    合并分支默认是引用合并(fast-forward),如果是把分支bug001合并到分支dev,就需要深拷贝合并(no-ff)。否则,删除bug001后就没办法引用了。
     
    3)删除分支bug001
    git branch -d bug001
     
    4)推送分支dev到服务器
    git push origin dev
     
    (5)小技巧:将合并好的dev版本再合并给itcast2,推送到服务器
    git checkout itcast2
    git merge dev
    git push origin itcast2
     
     
     
    16、查看日志(历史记录)
    (1)完整的日志(commit后,并且push的记录)
    git log(宏观。更适合克隆后,查看本地的远程项目的提交记录)
    (2)简介版日志(只有本地commit后的记录,可以看到版本号)
    git reflog(微观。更适合本地,强烈推荐)
     
    17、日志的2个作用
    (1)对比两个版本的差异:git diff
    1)比较最近(当前已commit)版本和工作区的差异
    git diff HEAD -- ttsx/ttsx/urls.py
    2)对比最近版本和上一次版本的差异
    git diff HEAD HEAD^ -- ttsx/ttsx/urls.py
    3)对比上一次版本和最近版本的差异
    git diff HEAD^ HEAD -- ttsx/ttsx/urls.py
    4)对比两个版本的差别(HEAD表示最近提交的版本,7c56139另一个版本)
    git diff HEAD 7c56139 -- ttsx/ttsx/urls.py
     
    拓展:
    1、查看工作区的变动
    尚未缓存的改动:
    git diff
     
    2、查看缓冲区的变动
    查看已缓存的改动:
    git diff --cached
     
    3、查看工作区、缓冲区的变动(相当于git status)
    查看已缓存的与未缓存的所有改动:
    git diff HEAD
     
    4、显示变动摘要
    显示摘要而非整个
    git diff --stat
     
    小结:git status(强烈推荐git status)、git diff 
    git status  显示新建、修改、删除,
    git diff      只显示修改,一行一行地显示这些改动具体是啥。
     
     
     
    (2)回退到以前版本:git reset 8042a87
    git reflog
    git reset 8042a87
    git status
    git checkout -- ttsx/ttsx/urls.py
     
    18、历史版本,从仓库恢复到暂存区
    git reset HEAD(或者版本号8042a87)
    从暂存区恢复到工作区
    git checkout -- 文件名
     
    19、保存现场(不想提交修改,但是必须切换到其它分支去解决bug时用)
    git stash
     
    20、恢复现场(bug修复后,回到以前的分支,并恢复现场)
    git checkout itcast1
    git stash pop
     
    21、配置
    查看git所有配置信息  
    git config --list
    或者:查看某一个变量的值,
    git config user.name
    拓展:
    配置用户信息,Ubuntu家目录python文件夹下
    vi .gitconfig
     
     
    22、git rm
    git rm 会将条目从缓存区中移除。这与 git reset HEAD 将条目取消缓存是有区别的。 "取消缓存"的意思就是将缓存区恢复为我们做出修改之前的样子。
    默认情况下,git rm file 会将文件从缓存区和你的硬盘中(工作目录)删除。
    如果你要在工作目录中留着该文件,可以使用 git rm --cached:
    如我们删除 hello.php文件:
    git rm hello.php
    不从工作区中删除文件:
    git rm --cached README

    4、git提效工具

    git有一个实用的图像管理工具sourcetree。

    图形操作,代码差异、分支情况、文件增删,直观易懂。

    5、git的技术用语
    (1)分支
    各自的分支:一个开发人员一个分支,互不冲突。一个分支相当于一辆车的专属跑道。
    dev公共分支:成员合并的分支,用于阶段性合并代码。
    master主分支:发布版本的分支。
     
    (2)工作区、版本库、服务器
    工作区、版本库(包括暂存区和仓库区)、服务器(如:github、gitee、自搭建)
    1)工作区:本地所有文件(除了.git)
    2)版本库:.git
    3)服务器:相当于共用U盘
    查看工作区改动,git diff
    查看暂存区改动,git diff --cached
  • 相关阅读:
    windows server2012 r2 上IIS8.5
    windows server2012 r2 上 安装 IIS8.5
    Visual Studio 14 初试,vNext
    ASP.NET MVC+EF5 开发常用代码
    JavaScript中的Array
    java maven安装以及如何安装第三方的jar以及module的配置
    java字符串格式化错误
    Excel数据生成Sql语句
    tornado异步请求非阻塞
    python tornado User-Agent
  • 原文地址:https://www.cnblogs.com/andy9468/p/11632886.html
Copyright © 2011-2022 走看看