zoukankan      html  css  js  c++  java
  • git

    自报家门
    • 使用git之前,要先自报家门
    • git config --global user.name "用户名"
    • git config --global user.email "邮箱地址"
    本地仓库
    • 新建或选择一个目录然后,使用git init命令把这个目录变成Git可以管理的仓库

    • 图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道,因此,如果要真正使用版本控制系统,就要以纯文本方式编写文件

    • 因为文本是有编码的,如果没有历史遗留问题,强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。

    提交文件
    • 使用git add 文件名将一个新文件添加到仓库
    • 使用git commit -m "更新信息"将修改提交到仓库
    • -m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录
    • 为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:
    git add file1.txt
    git add file2.txt file3.txt
    git commit -m "add 3 files."
    
    查看信息
    • git status命令可以让我们时刻掌握仓库当前的状态
    • git diff可以查看修改的内容
    • git log可以查看版本变更的历史记录,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数
    • git log --pretty=oneline
    版本回退
    • 在Git中,HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本就是HEAD~100
    • 使用git reset --hard 版本标识命令进行版本跳转
    • 如:git reset --hard HEAD^
    • 也可以重新跳转回最新的版本,git reset --hard 3628164
    • 版本号没必要写全,前几位就可以了,Git会自动去找
    • 回退版本后,却忘了最新版本的版本号怎么办?

      Git记录了版本变更的记录,可以使用git reflog查看版本变更记录

    工作区和暂存区
    • 工作区:就是你在你的电脑里能看到的目录
    • 版本库:工作区内部有一个.git目录,这个不算工作区,而是git的版本库
    • Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
    • 前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
      • 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区
      • 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支
    • git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支
    管理修改
    • 为Git跟踪并管理的是修改,而非文件。
    • 新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。
    • git commit只负责把暂存区的修改进行提交
    • 提交修改还是使用git addgit commit命令完成的
    • git checkout -- file中的--很重要,如果没有,就变成了切换到另一个分支的指令
    撤销修改
    • git checkout -- file可以丢弃工作区的修改
    • 注意还未执行git add时上述操作才有效
    • 已经执行git add,但还没有commit,可以使用git reset HEAD回退到最后commit的版本
    删除文件
    • 删除也是一个修改操作
    • Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了
    • 现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并提交git commit
    • 另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本
    • git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
    配置远程仓库
    • ssh-keygen -t rsa -C "Lyinghao@126.com"
    • 把id_rsa.pub配置到github的SSHKey中
    添加远程仓库
    • 在本地的learngit仓库下运行命令:git remote add origin git@github.com:TommyChok/learngit.git
    • 把本地内容添加到远程仓库:git push -u origin master
    • 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
    • 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
    • 推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:
    • 以后提交,只需执行git push origin master
    从远程库克隆
    • 假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。
    • 首先,登陆GitHub,创建一个新的仓库,名字叫gitskills:
    • 进入本地目录,执行git clone git@github.com:TommyChok/gitskills.git
    • 要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆
    • Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
    创建合并分支
    • 使用命令:git checkout -b dev创建并切换到dev分支
    • git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
      • git branch dev
      • git checkout dev
    • git branch命令可以查看当前分支
    • git branch命令会列出所有分支,当前分支前面会标一个*号
    • git merge命令用于合并指定分支到当前分支
    解决冲突
    • 执行merge后可能发生冲突git merge feature1
    • 发生冲突后,可使用git status查看冲突的文件
    • 重新编辑冲突文件,解决冲突
    • 重新git addgit commit新文件,冲突解决
    • 可使用git log --graph --pretty=oneline --abbrev-commit查看分支合并的情况
    • 合并分支后,可删除无用分支git branch -d feature1
    分支管理策略
    • 通常,合并分支时,如果可能,Git会使用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息
  • 相关阅读:
    flume-agent实例
    Apache Ant在Windows下配置环境变量
    作业流程和优化
    使用MapReduce查询Hbase表指定列簇的全部数据输出到HDFS(一)
    使用MapReduce将HDFS数据导入到HBase(二)
    数据结构(一)线性表——顺序表
    Java类集综合练习——信息管理(增、删、改、查)
    MySQL数据库表的数据插入、修改、删除、查询操作及实例应用
    总结一下这几节Java课的...重点!!!
    文件I/O操作——File类
  • 原文地址:https://www.cnblogs.com/tommychok/p/7542761.html
Copyright © 2011-2022 走看看