zoukankan      html  css  js  c++  java
  • Git总结

    从上次实习结束到现在刚入职, 时隔快半年了, 好久没用git, 连基本命令都忘的差不多了. 今天就总结一下, 做个复习.

    跟着本篇文章, 从头到尾照着敲一遍, 即可快速学习(复习)常用的git操作.

    创建仓库

    首先创建一个名叫"test"的库.

    例如github的话, 就是点击New repository 按钮

    然后在Repository name处输入"test"即可. 点击create repository 就创建了.

    然后在本地创建一个test文件夹.

    mkdir test
    cd test
    

     初始化本地仓库

    git init
    

    其中的`.git`文件夹里就包含了git的相关信息.

    创建README.md文件, 并将内容"abcdefg"写入进去:

    echo "abcdefg" >> README.md
    

     然后添加远程仓库, 并将README.md上传到远程仓库.

    git add README.md                                                   # 将变化添加到暂存区
    git commit -m "上传README.md文件"                                    # 将暂存区里的改动给提交到本地的版本库
    git remote add origin git@github.com:GoldArowana/test.git           # 添加远程仓库
    git push -u origin master                                           # 提交到master
    

     然后就可以看到github里的test仓库里就有了README.md文件:

    git add 命令

    git add 可以将本地仓库的变化添加到暂存区.

    touch a.txt    # 创建文件
    git add a.txt
    

     可以用git add <具体文件名> 来一个一个添加文件.

    也可以用 `git add .  ` 命令来添加所有的变动.

    touch b.txt
    touch c.txt
    git add .          # 等价于  git add b.txt   +  git add c.txt

    git status

    git status命令可以查看工作目录和暂存区的状态.

    touch d.txt
    git status
    

    这是git status命令所查看到的结果.

    绿色的a.txt  b.txt  c.txt 是之前用git add命令已经添加到暂存区里的.

    红色的d.txt是刚刚创建(刚刚发生了改变), 但还没添加到暂存区里的.

    git rm --cached

    git rm --cached命令可以让文件从暂存区移出.

    首先咱们先看一下当前的状态:

    git status
    

     

     接下来咱们把d.txt添加到暂存区中

     然后咱们看一下现在的状态.

    接下来就是掩饰git rm --cached命令的时候了. 想把d.txt移出暂存区, 也就是让d.txt从绿色再变回红色.

    git rm --cached d.txt
    

     然后再看一下暂存区状态:

    git commit

    git commit命令会将暂存区的内容提交到git的本地版本库中.

    先 git status看一下当前的暂存区状态:

    绿色的三个文件是暂存区中的. 执行commit操作后, 这三个文件将会被提交到git本地版本库中.

    git commit -m "提交a b c 三个文件"
    

     其中 -m后面是提交的注释.

    这样就把这三个文件提交到git本地版本库了.

    git log

    刚刚已经commit操作进行提交了. 之后可以使用git log命令来查看提交记录.

    git log
    

    在这里可以看到提交的id (sha1摘要值), 和提交的分支, 日期, 备注 等内容.

    按`q`健即可退出这个界面.

    显示最近一条日志:

    git log -1
    

    显示最近两条日志:

    git log -2
    

    以一条日志占一行的形式进行显示:

    git log --pretty=oneline
    

    git log --graph                            # 图形化显示分支
    
    git log --graph --abbrev-commit            # --abbrev-commit 的作用是只显示sha1摘要的前几位.

    git checkout --

    git checkout -- 可以撤销对代码的修改.

    首先咱们先看一下a.txt文件:

    可以看到a.txt里面内容为空. 咱们写入"123456"内容到a.txt中.

    已经修改了a.txt   同时可以在status命令看到状态, a.txt是[修改]状态:

    接下来执行git checkout -- <文件名> 即可撤销修改.

    git checkout -- a.txt

     撤销修改后看一下a.txt的内容, 发现为空:

    看一下暂存区状态:

    git reset Head

    从暂存区中恢复到工作区.(也就是绿色变回红色)

     修改一下a.txt.

    echo "123" >> a.txt
    

     然后git status查看一下状态:

    然后用add命令添加到暂存区中:

    git add a.txt
    

     git status后会发现a.txt被添加到了暂存区中(也就是变绿了). 

    接下来, 用reset命令, 让a.txt从暂存区重置到工作区中(也就是绿色再变为红色):

    git reset Head a.txt
    

     可以看到a.txt又回到了工作区中: 

    git rm

    a.txt文件现在是modified状态:

    用a.txt来演示git rm的话, 需要先用checkout命令将修改撤销:

    checkout -- a.txt
    

     可以看到a.txt的修改已经被撤销了. 

    接下来可以开始演示git rm了:

    git rm a.txt
    

     执行完git rm之后, a.txt被删除了:

    而且本次删除还被提交到了暂存区中(变绿了):

    恢复 `git rm` 删除操作

    如果用git rm命令删除了a.txt文件, 想要再恢复, 怎么办呢?

    先用reset命令,  将a.txt置回工作区中(也就是让他从绿色变成红色):

    git reset HEAD a.txt
    

     然后执行git status命令就可以看到a.txt已经变为红色了:

     接下来就要用checkout命令来撤销删除操作了:

    git checkout -- a.txt
    

     然后你就能看到a.txt文件又恢复了:

    git branch

    查看分支:

    git branch
    

      按q即可退出. 可以看到有且仅有一个分支 `master`.

    基于当前分支, 创建一个新的分支 `king`:

    git branch king
    

     然后再git branch查看一下分支情况:

    , 可以看到两个分支了. 一个是master, 一个是king. 其中master为绿色, 表示当前分支. 新增的king分支是基于当前分支`master` 新建的.

    查看所有分支的最近一次提交:

    git branch -v

     删除`king`分支(注意, 不能删除当前分支.  想要删除当前分支, 就得先切换到另一个分支.):

    git branch -d king
    

     强制删除 (其中, `king` 是分支的名字):

    git branch -D king

    git checkout

    git checkout 可以用于切换仓库.

    首先咱们新建一个仓库`repo2`:

    git branch repo2
    

     查看一下分支情况:

    git branch
    

    , 可以看到多出了一个repo2分支, 当前分支为master.

    接下来咱们切换到repo2分支中:

    git checkout repo2
    

     git branch可以看到: 

    , 发现当前分支是repo2了 (绿色表示当前分支)

    刚刚咱们首先创建了一个分支, 然后再进入到了这个新的分支中. 这两个步骤可以合并为一个命令. 下面这一句命令, 就是"创建repo3分支, 并切换到repo3分支" :

    git checkout -b repo3
    

     ,  发现repo3分支已经创建, 并且当前分支就是repo3了.

     切换到上一个分支:

    git checkout -
    

    , 执行1次,就是切换到上1次的分支; 执行2次, 就是切换回原来的分支. 也就是来回切换.

    git reflog

    git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作):

    git reflog
    

    git merge

    首先查看一下当前分支状态:

    git status
    

     然后咱们把d.txt  e.txt  添加到仓库中, 并推到远程仓库.

    git add .
    git commit -m "添加d.txt 和 e.txt"
    git push --set-upstream origin repo2
    ls
    

     切换到repo3仓库:

    git checkout repo3
    ls
    

    接下来, 把 repo2  合并  到 repo3(当前分支)   分支上:

    git merge repo2
    ls
    

    , 可以看到repo2仓库里最新修改(新增了d.txt  e.txt)已经合并到了repo3中.

    关于merge --no-ff 和 --squash 的区别 :   https://segmentfault.com/q/1010000002477106 

    git commit -am ""      https://segmentfault.com/q/1010000005900988

    未完待续

    git config --local user.name "arowana"

    git config --local user.email "arowana.java@qq.com"

  • 相关阅读:
    C#学习笔记之——矩形覆盖问题
    链表,栈,队列代码
    链表练习代码
    2012年全国计算机专业大学排名
    寄存器介绍
    win8 wifi开关显示关闭,且设置里面wifi开关显示灰色的解决办法
    360随身wifi无法使用临时解决方案大全
    锐捷客户端的校园网电脑如何转化成无线路由
    未完成数据结构题目
    数据结构代码1
  • 原文地址:https://www.cnblogs.com/noKing/p/10091108.html
Copyright © 2011-2022 走看看