Git学习笔记——git命令

Git

修改个人信息

$ git config --global user.name "YyykStudy"

$ git config --global user.email "[email protected]"

初始化仓库

创建文件夹

$ mkdir learngit
$ cd learngit
$ pwd	---显示当前文件夹的位置
/c/Users/10747/learngit

将文件夹作为仓库

$ git init
Initialized empty Git repository in C:/Users/10747/learngit/.git/

添加上传文件

  1. 在文件夹下创建文件,并将此文件添加到暂存区,若文件添加后再进行修改时,需要再次添加到暂存区,否则暂存区存放的是上个版本的文件
    $ git add readme.txt
    $ git add LICENSE.txt
    or
    $ git add readme.txt LICENSE.txt
    

Git学习笔记——git命令_第1张图片

  1. 将暂存区的文件提交至版本库

    git commit -m "wrote a readme file"
    -m命令:上传文件说明
    

Git学习笔记——git命令_第2张图片

查看暂存区(stage)的状态

$ git status
  1. 文件已修改但没添加
    在这里插入图片描述
  2. 文件已添加到暂存区但没有提交到仓库
    在这里插入图片描述
  3. 文件已提交
    在这里插入图片描述

查看文件修改的内容

$ git diff readme.txt	---暂存区与工作区的文件不同

Git学习笔记——git命令_第3张图片

$ git diff HEAD -- readme.txt	---版本库与工作区的不同

Git学习笔记——git命令_第4张图片

版本回溯

  1. 查看历史版本

    $ git log
    or
    $ git log --pretty=oneline	---简洁版
    

    Git学习笔记——git命令_第5张图片
    在这里插入图片描述

  2. 回溯

    $ git reset --hard HEAD~1	---1代表回到之前第1个版本
    
  3. 通过id号回到未来

    $ git reset --hard 2da2a
    HEAD is now at 2da2a2c append GPL
    
  4. 通过命令记录查找id号

    $ git reflog
    

    在这里插入图片描述

撤销修改

  1. 文件未放到暂存区

    $ git checkout -- readme.txt
     
    git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
    
  2. 文件放到暂存区但未提交到版本库

    $ git reset HEAD readme.txt	
    
    git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
    
  3. 已提交到版本库:参考版本回溯

删除文件

  1. 工作区删除文件

    $ rm LICENSE.txt
    
    恢复:
    $ git checkout -- LICENSE.txt
    
  2. 暂存区删除文件

    $ git rm LICENSE.txt
    $ git commit -m "remove LICENSE.txt"	---提交,类似add
    
    恢复:参考版本回溯
    $ git reset --hard HEAD^
    

连接远程库

教程

添加远程连接

$ git remote add origin [email protected]:yyykstudy/learngit.git	---git@...为SSH远程连接

查询远程连接

$ git remote -v

删除远程连接

$ git remote rm origin

把本地的版本库推送到远程库中

第一次:$ git push -u origin master	---origin为连接名

更新:$ git push origin master

远程库克隆

$ git clone [email protected]:yyykstudy/learngit.git

注意:克隆之后的文件夹下的远程连接名默认为origin

创建合并分支

为什么需要创建合并分支

创建分支

$ git switch -c dev
or
$ git checkout -b dev
or
$ git branch dev
$ git checkout dev

切换分支

$ git switch master
or
$ git checkout master

合并分支

 $ git merge dev

删除分支

$ git branch -d dev

分支冲突

原因:若dev分支与master分支对README.md文件都进行了修改提交,并将master与dev合并,会出现分支冲突,此时需要手动修改所需要的README.md文件,再进行提交


查看分支图

$ git log --graph
$ git log --graph --pretty=oneline --abbrev-commit

Git学习笔记——git命令_第6张图片

Bug修改

当前分支没有未提交的工作

  1. 创建一个分支
  2. 修改Bug,add,commit
  3. 切换分支、合并、删除分支

当前分支还有未提交的工作

  1. 将此工作先储存起来,因为只有一个暂存区,直接切换不会分区保存
    $ git stash	---会将暂存区的内容清空,恢复后也为空的
    
  2. 切换到需要修改bug的分支,创建bug分支,修改bug,add,commit
  3. 切换到需要修改bug的分支,合并bug分支
  4. 切换到原工作分支,查看储存表
    $ git stash list
    
  5. 恢复现场
    $ git stash pop	---取出内容并删除
    or
    git stash apply	---只取出内容
    git stash drop	---将内容删除
    

修改其他分支中这样的bug

$ git cherry-pick 4c805e2	---4c805e2为bug分支的文件提交号

多人协作

  1. 先克隆项目 :
    $ git clone [email protected]:yyykstudy/learngit.git
  2. 创建远程origin的dev分支到本地
    $ git checkout -b dev origin/dev
    若已有dev分支,可使用此命令:$ git branch --set-upstream-to=origin/dev dev
  3. 对项目进行修改,添加提交到本地库中,然后push到远程库内
  4. 若其他人已经对远程库中进行了修改,则会发生冲突,解决方法与本地分支冲突解决方法类似:
    1. 先将远程库中内容pull到本地库中 $ git pull
    2. 处理冲突,然后add,commit,再push到远程库中就ok了

命令总结图

你可能感兴趣的:(git)