zoukankan      html  css  js  c++  java
  • Git

    前置条件:

    什么是版本控制?

    文件的每一次修改可以认为是一个版本,而记录和保留文件的每一个版本的思想就是版本控制。

    什么是版本控制工具?

    实现版本控制思想的工具。

    简述:

    什么是Git?

    分布式版本控制工具。简单、高效。

    为什么使用Git?和同类型的版本控制工具相比有什么优势?Git的原理是什么?

    同类型的软件如SVN是集中式版本控制工具,本地只保存最新版本的文件内容,一旦中央服务器发生故障那么将影响所有开发者的使用。
    因此Git诞生了。分布式版本控制工具使本地的每台电脑上不仅仅保存最新的文件内容还包括所有的历史记录,每一台电脑上保存的文件
    内容都和服务器上的一致,因此每一台电脑都可以作为一个单独的版本控制服务器来使用。这样就不担心中央服务器发生故障,也不用
    考虑中央服务器的带宽了。

    什么时候使用Git?

    在开发过程中任何文件都可以使用git来控制。涉及到文件修改时都可以使用Git。

    官网介绍:

    https://git-scm.com/book/zh/v2

    基础使用?

    Git文件的状态:未跟踪、未修改、已修改、已暂存、已提交。
    Git区域: 工作目录、暂存区、Git库

    初始化

    git init
    git clone url name
    git config
    git help config

    git config --global --list

    git config --global user.name "zhangsan"

    git config --global user.email 123123@qq.com

    基本操作

    git add 该命令可以开始跟踪文件(新增文件),把已跟踪的文件放入暂存区,把有冲突的文件标记为已解决。简单的说就是把文件放入暂存区使它下一次可以提交。
    git rm
    git rm --force [file]  强制删除,如果修改之后的文件已经提交到暂存区但是还没有提交到Git库,那么只能以这种方式进行删除。删除之后不可恢复。
    git rm --cached [file] 删除Git库之中的文件但是保留本地目录中的该文件。
    git status
    git status -s (A/??/M / M) 左M表示对已经在暂存区的文件进行了修改,右M表示对未在暂存区(就是新增的文件提交到跟踪之后又进行了修改)的文件进行了修改。
    .gitignore
    git diff 比较暂存区的文件和工作目录中已经修改的文件内容。暂存区文件1 和 暂存区文件1修改之后但并没有再一次提交到暂存区 两者之间的不同。
    git diff --staged  查看暂存区中下一次将要提交到Git仓库的文件内容。也就是说 git diff 命令展示出来的文件只有执行完 git add 命令之后才能出现在 git diff --staged 里。
    git commit 默认在提交之前调用git status
    git commit -m "说明";
    git commit -v 默认在提交之前调用 git diff --staged
    git commit -a 跳过暂存区直接将已跟踪的文件提交,注意是已跟踪的文件。新增的文件不适用。

    标签: 轻量标签、附注标签(含有标签详细信息,建议)
    git tag
    git tag -a v1.0 -m "测试创建标签"
    git show [tag] : 展示标签信息。


    git mv oldName newName
    git log
    -p :展示每次提交不同。
    -数字 : 展示最近几条提交日志。
    --stat :
    --pretty :
    git checkout -- fileName : 还原
    分支
    git branch
    git branch [branch] : 创建 branch 分支
    git checkout [branch] : 切换到 branch 分支
    git checkout -b [branch] : 等于 git branch [branch] 和 git checkout [branch]
    git merge [branch] : 把branch分支融入到当前分支中
    git branch -d [branch] : 删除branch分支

    本地初始化库上传到github

    git init
    git config --global user.name "guofengzhi"
    git config --global user.email 820209825@qq.com
    git remote add test https://github.com/guofengzhi/test.git
    ...
    git add *
    git commit -v -m "首次提交"

    git push test master

    直接从github下载到本地

    git clone https://github.com/guofengzhi/test.git test

    git fetch [remote] [branch] : 从某一服务器的某一个分支抓取到 FETCH_HEAD 中。
    git push [remote] [branch] :推送到某一服务器的某一个分支上。

    git pull = git fetch + git merge

    解决冲突:

    方式一:

    编写代码
    git add
    git commit -m ""
    git pull test master
    手动解决冲突
    git add
    git commit
    git push test master

    方式二:

    编写代码
    git add
    git commit -m ""
    git fetch test master
    git merge FETCH_HEAD
    手动解决冲突
    git add
    git commit
    git push test master

    ssh访问
    ssh-keygen -t rsa -C "820209825.com" 【设置密码】
    cat id_rsa.pub
    github网站添加公钥
    ssh -vT git@github.com 【输入密码】
    git clone git@github.com:guofengzhi/TEST.git 【输入密码】

    github 太卡
    修改windows里的hosts文件,C:WindowsSystem32driversetc  ,添加如下内容

    # Github
    151.101.44.249 github.global.ssl.fastly.net 
    192.30.253.113 github.com 
    103.245.222.133 assets-cdn.github.com 
    23.235.47.133 assets-cdn.github.com 
    203.208.39.104 assets-cdn.github.com 
    204.232.175.78 documentcloud.github.com 
    204.232.175.94 gist.github.com 
    107.21.116.220 help.github.com 
    207.97.227.252 nodeload.github.com 
    199.27.76.130 raw.github.com 
    107.22.3.110 status.github.com 
    204.232.175.78 training.github.com 
    207.97.227.243 www.github.com 
    185.31.16.184 github.global.ssl.fastly.net 
    185.31.18.133 avatars0.githubusercontent.com 
    185.31.19.133 avatars1.githubusercontent.com
    192.30.253.120 codeload.github.com

  • 相关阅读:
    java与C#区别1
    简单解决Linq多条件组合问题<转>
    散列表(哈希表)工作原理<转>
    在Eclipse中设置中文JavaDOC<转>
    Cucumber入门之_argument
    Cucumber入门之Gherkin
    网上常用免费WebServices集合
    watir学习baidu搜索示例
    使用Cucumber的15个建议
    Cucumber入门之_World
  • 原文地址:https://www.cnblogs.com/guofz/p/10979830.html
Copyright © 2011-2022 走看看