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
  • 相关阅读:
    Kubernetes 集成研发笔记
    Rust 1.44.0 发布
    Rust 1.43.0 发布
    PAT 甲级 1108 Finding Average (20分)
    PAT 甲级 1107 Social Clusters (30分)(并查集)
    PAT 甲级 1106 Lowest Price in Supply Chain (25分) (bfs)
    PAT 甲级 1105 Spiral Matrix (25分)(螺旋矩阵,简单模拟)
    PAT 甲级 1104 Sum of Number Segments (20分)(有坑,int *int 可能会溢出)
    java 多线程 26 : 线程池
    OpenCV_Python —— (4)形态学操作
  • 原文地址:https://www.cnblogs.com/andy9468/p/11632886.html
Copyright © 2011-2022 走看看