zoukankan      html  css  js  c++  java
  • Git 笔记

    1. 创建版本库

    • 创建目录
    • git init
    • git add <file>
    • git commit -m "本次提交内容的说明"

    2. 查看状态

    • git status
    • git diff <file>

      如果 git status 告诉你有文件被修改过,用 git diff 可以查看修改内容。

    3. 版本回退

    • HEAD 指向的版本就是当前版本,上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成 HEAD~100
    • git reset --hard HEAD^  退回到上一个版本
    • git reset --hard commit_id 退回到指定版本
    • commit_id 可以用 git log 或者 git reflog 查看
    • 用 git log 可以查看提交历史,以便确定要回退到哪个版本。
    • 重返未来,用 git reflog 查看命令历史,以便确定要回到未来的哪个版本。

    4. 工作区和暂存区

    • 工作区(Working Directory), 就是我们第一步所创建的目录
    • 版本库(Repository):

      工作区有一个隐藏目录 .git,这个不算工作区,而是Git的版本库。

      Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

    Git - Working Directory and Repository

      

    把文件往Git版本库里添加的时候,是分两步执行的:

    第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

    第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

    因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

    可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

    4. 管理修改

    • Git跟踪并管理的是修改,而非文件
    • 文件提交后,用git diff HEAD -- <file> 命令可以查看工作区和版本库里面最新版本的区别

    5. 撤销修改

    • 场景一:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令 git checkout -- <file>;
    • 场景二:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令 git reset HEAD reset 就回到了场景1,第二步按场景1操作;
    • 场景三:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

    6. 删除文件

    • 确实要从版本库中删除该文件,那就用命令 git rm 删掉,并且 git commit
    • git checkout -- <file> 用版本库里的版本替换工作区的版本
  • 相关阅读:
    hashCode()相同,equals()也一定为true吗?
    什么是装箱?什么是拆箱?装箱和拆箱的执行过程?常见问题?
    LOJ114_k 大异或和_线性基
    BZOJ_4459_[Jsoi2013]丢番图_数学+分解质因数
    BZOJ_4184_shallot_线段树按时间分治维护线性基
    BZOJ_2844_albus就是要第一个出场_线性基
    BZOJ_3105_[cqoi2013]新Nim游戏_线性基+博弈论
    BZOJ_1195_[HNOI2006]最短母串_AC自动机+BFS+分层图
    BZOJ_3881_[Coci2015]Divljak_AC自动机+dfs序+树状数组
    BZOJ_1532_[POI2005]Kos-Dicing_二分+网络流
  • 原文地址:https://www.cnblogs.com/sufei-duoduo/p/5728694.html
Copyright © 2011-2022 走看看