Git-Git常用命令(学习笔记)

目录

一、Linux系统常见的文件操作命令

二、本地操作

2.1、git的工作流程:

2.1.1、三个区域的主要职能:

2.1.2、三个区域的工作顺序:

2.2、创建及初始化仓库 > config / init:   

2.3、文件保存进本地的git仓库:

    2.3.1、上传文件 > status / add / commit:

    2.3.2、删除文件 > rm:

    2.3.3、找回文件 > restore:

2.3.4、重命名文件 > mv

2.4、查看工作状态和历史提交 > log:

2.5、回到过去(回滚) > reset:

2.5.1、三个工作区域之间数据流的转换:

2.5.2、HEAD及快照:

2.5.3、reset命令的选项:

2.5.4、回滚个别文件: 

2.6、不仅可以回滚,还可以往前滚(撤销回滚):

方法1:

方法2:

2.7、版本对比:

2.8、创建和切换分支 > branch / checkout / merge:

三、联网操作

3.1、Git克隆操作:

    3.2、提交到远程仓库:

3.3、第一次提交远程仓库



声明:
    命令以 git 开头的都是git的执行命令
    不是以 git 开头的命令,可能是window系统的命令或是Linux系统的命令
    以尖叫包裹起来的名词,都是要写相应的代码,例如:git add <file>,要写成 git add readme.txt

    本博文是本人看视频后自己总结的一些知识,以防忘记,所以内容不是很全,各位见谅。
    视频连接:

【教程】学会Git玩转Github【全】https://www.bilibili.com/video/av10475153?from=search&seid=8623838565841706709

【教程】Git 实用教程(小甲鱼)https://www.bilibili.com/video/av8261658/?spm_id_from=333.788.b_636f6d6d656e74.113

 

=============================

一、Linux系统常见的文件操作命令

下面先列出Linux系统常见的文件操作命令,不想看的可以跳过:
cd /home 进入 '/ home' 目录'
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls *[0-9]* 显示包含数字的文件名和目录名
tree 显示文件和目录由根目录开始的树形结构
lstree 显示文件和目录由根目录开始的树形结构
touch file1    创建一个文件,更多用法清百度
mkdir dir1 创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1' 的目录'
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命名/移动 一个目录
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录

cp -r dir1 dir2 复制一个目录及子目录
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接

vi file1    打开vi编辑器
    i/a键    进行编写    
    编写完后按ESC键,按如下命令进行退出操作
    :wq    保存并退出
    :q    直接退出,前提是没有改动过文件内容
    :q!    不保存,强制退出
    :w    保存,不退出
    :w!    强制保存,不退出

 

==========================

二、本地操作

2.1、git的工作流程:

git有三个工作区域,分别是工作区、暂存区和git仓库。

2.1.1、三个区域的主要职能:

     工作区:对文件进行添加、编辑、修改和删除等操作。该工作区中的文件也就是我们磁盘中的文件。

    暂存区:暂存在工作区加工过的文件,因为有可能还要对这些文件进行操作,所有先不存进git仓库。

    git仓库:保存最终确认的文件,成为一个新的版本,并且对他人可见。

2.1.2、三个区域的工作顺序:

    工作区 --> 暂存区 --> git仓库

 

2.2、创建及初始化仓库 > config / init:   

选择一个目录作为仓库,在该目录中打开git命令窗口,或是先打开git命令窗口,再使用命令跳转到作为仓库的目录。

使用如下命令,配置是那一个对象上传文件到git仓库的:

     git config --global user.name "帐号"    回车

     git config --global user.email "帐号@qq.com"    回车(这里写绑定的邮箱)

使用如下命令,初始化git仓库:

     git init    回车

如此操作后,在目录下就有一个新创建的 .git 文件,如果没有,那就设置让隐藏目录(文件)显示出来。

   

   

2.3、文件保存进本地的git仓库:

先使用window或Linux命令创建目录或文件,因为git命令都是对文件进行操作,没有文件就什么都做不了。

    2.3.1、上传文件 > status / add / commit:

    如果在工作区中有创建新文件、修改文件,可使用如下命令检查是否存在能被上传到暂存区或git仓库的文件:

        git status    回车

    如果有,则使用如下命令将文件先上传到暂存区:

        git add <file>    回车

    上面两步之后,再执行 git status 代码检查暂存区是否存在能被上传到git仓库的文件。

    如果不想继续上传到git仓库,文件还有可能再此修改,那就可以让它继续留在暂存区,不需再执行其他命令。

     如果要继续上传到git仓库,那么执行如下命令,一次性把暂存区中的所有文件提交到仓库:

                git commit -m "输入提示信息"    回车

    修改最后一次提交:

        情景1:版本刚就提交(commit)到仓库,突然想乐漏掉两个文件还没有添加。

        情景2:版本刚就提交(commit)到仓库,想起版本说明写的不够全面,无法彰显你本次修改的重大意义。

        方法:

            执行带 --amend 选项的 commit 提交命令,Git就会“更正”最近的一次提交。(好像中文不行)

            之后回进入一个类似 vi 编辑器的界面,在里面修改要修改的信息即可。

            如果修改说明为中文: git commit --amend -m "中文说明"

 


    2.3.2、删除文件 > rm:

    如下代码命令删除的只是工作目录和暂存区域的文件,也就是取消跟踪,在下次提交不纳入版本管理

        git rm <file> 回车

    如果只想删除暂存区的文件,执行一下代码:

        git rm --cached <file>


    2.3.3、找回文件 > restore:

    如果文件已经上传到了暂存区或git仓库,那么在工作区中删除的文件是可以找回的,执行如下代码:

        git restore <file> 回车

2.3.4、重命名文件 > mv

            git rm <file>

        该命令删除的只是工作目录和暂存区域的文件,也就是取消跟踪,在下次提交不纳入版本管理。

        如果只想删除暂存区的文件,执行一下代码:

            git rm --cached <file>

 


2.4、查看工作状态和历史提交 > log:

如果修改过文件后,又不想要了,想回复回没更改之前的内容,可以使用如下命令:

    git checkout -- <file>      (好新版不是这个命令)

如果想查看历史提交记录,使用命令:

    git log

如果有多个分支,那么如何查看显示当前 head 指向的是谁呢?使用命令:

    git log --decorate

 

2.5、回到过去(回滚) > reset:

2.5.1、三个工作区域之间数据流的转换:

    工作区使用 add 命令提交到暂存区,暂存区使用 commit 命令提交到git仓库。

    反过来又是怎么样的呢?

    git仓库使用 reset 命令恢复数据到暂存区,暂存区使用 chechout 命令恢复数据到工作区。

    注意:reset / checkout 命令没有 add / commit 命令这里么简单,是git里最复杂的命令。

2.5.2、HEAD及快照:

    每一次提交文件都是生成一个快照,一个快照包含最新提交的文件(应该是这样吧。。。)。

    HEAD是指向最新的快照,可以是 HEAD~ 指向上一个快照,多个 ~ 指向相应的上上一个快照,可以使用 HEAD~n 形式指向上上个快照,n表示数字。

    使用ID回滚到相应的快照: 只用 ID号 替换 head[~] ,ID号输入前5/6个就好。

2.5.3、reset命令的选项:

    git reset --mixed head~

        移动dead的指向,将其指向上一个快照

        将head移动后指向的快照回到暂存区域(所有文件)

    git reset --soft head~

        移动dead的指向,将其指向上一个快照

    git reset --hard head~

        移动dead的指向,将其指向上一个快照

        将head移动后指向的快照回到暂存区域(所有文件)

        将暂存区域的文件还原到工作目录

        所以使用该命令是由危险的

2.5.4、回滚个别文件: 

    git reset 版本快照 文件名/路径


2.6、不仅可以回滚,还可以往前滚(撤销回滚):

也就是撤销 git reset --hard HEAD~[n] 的操作,使用 head 回到回滚前的位置。

方法1:

        先查看快照的ID号:git log

        git reset <版本快照的ID号>

方法2:

        如果不小心把git界面给关了,再次打开git界面并且执行 git log 命令,查看到的也只是回滚后指向的快照及以前的快照,
               在使用回滚之前的快照是看不到的了,不怕,有办法解决:

        使用 git ref log 命令查看我们的所有提交记录。

        再使用方法1即可。

        也可以按照记录执行 git reset --soft head@{n}    回车,n 表示数字。

2.7、版本对比:

比较两个对象内容的不同,有对比那些内容被修改,那些内容相同。

比较暂存区与工作目录:

        git diff

比较两个历史快照:

        git diff 快照ID1 快照2

比较当前工作目录和git仓库中的快照:

        git diff 快照ID

比较当前工作目录和当前git仓库中的快照:

        git didd head

比较暂存区域和git仓库快照:

        git diff --cached [快照ID]    没有快照ID的话,则是和最新的git仓库比较

 

2.8、创建和切换分支 > branch / checkout / merge:

    创建分支(相当于复制当前head指向的快照):

        git branch <分支名>


    切换分支:

         git checkout <分支名>

    创建并切换分支:

        git checkout -b <分支名>


    如果有多个分支,那么如何查看显示当前 head 指向的是谁呢?使用命令:

        git log --decorate
    
    使用下面的命令用于一行一行的显示当前 head 指向的谁提交的记录:

        git log --decorate --oneline

    如果想查看所有的分支都有的提交记录:

        git log --decorate --oneline --graph --all

    合并分支(合并到head所在的分支):

        git merge <分支名>    

        如果有相同的文件并且内容不同,git就会提示我们,要保留那个分支的文件

        这时就可以到工作区中打开对应的文件(git会帮我们把两个分支的文件内容组合,以“=====”为鉴)

        保留我们要的内容,删除不要的内容,再进行一次add和commit,可以合并两个分支了。

    删除分支:
        
        git branch -d <分支名>

 

三、联网操作

使用远程仓库的作用:备份,实现代码共享集中化管理

3.1、Git克隆操作:

目的:将远程仓库复制到本地。

方法:执行一下代码就可以将远程仓库复制到本地。

git clone 仓库地址

 

3.2、提交到远程仓库:

        目的:将本地仓库提交到远程仓库。

        方法:执行 git push     回车

        如果 git push 出现错误,提示无法同步或没有劝降,解决方法如下:

            在 .git 文件夹里的config文件中修改一些代码:

            将 url = https://github.com/用户名/仓库名.git

            改成 url = https://用户名:密码@github.com/用户名/仓库名.git

 

新的项目如何提交到Github:

    如何将项目上传至GitHub?    https://www.cnblogs.com/Steffen-xuan/p/11193248.html
  

    3.3、第一次提交远程仓库

新的项目如何提交到Github:

    如何将项目上传至GitHub?    https://www.cnblogs.com/Steffen-xuan/p/11193248.html

 

更多文档:https://blog.csdn.net/qq_42098517/category_9550749.html

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值