Git常用命令学习笔记

1. Git简介

本地仓库由工作目录(持有实际文件)、暂存区(Index,缓存区域,临时保存改动)、HEAD(指向最后一次提交的结果)组成

  • 工作区:工作目录
  • 暂存区:stage或index,一般存放在 .git 目录下的index文件中
  • 版本库:工作区中有一个隐藏目录 .git 为Git的版本库

2. Git配置

  • 读取当前所有的git配置信息

    git config --list
    
  • 读取 /etc/gitconfig文件中的内容,该文件是系统中对所有用户都普遍适用的配置

     git config --system --list
    
  • 读取 ~/.gitconfig 文件中的内容,该文件为用户目录下的配置文件,只适用于该用户

    git config --global --list
    
  • 直接查看某个环境变量

    git config user.name
    git config user.email
    
  • 配置用户信息:个人的用户名和电子邮件地址

    # 如果去掉global只对当前仓库有效
    git config --global user.name ""
    git config --global user.email ""
    
  • 针对当前仓库进行配置

    git config -e 
    
  • 针对系统上所有仓库进行配置

    git config -e --global
    

3. Git 基本操作

  • 克隆仓库

    # 克隆远程仓库到当前目录
    git clone <repo>
    # 克隆远程仓库到指定目录
    git clone <repo> <directory>
    
    
  • 创建仓库:初始化一个git仓库

    # 使用已经存在的目录作为git仓库
    git init
    
    # 使用已经存在的目录作为git仓库
    git init newrepo
    
  • 提交操作:将文件提交到本地仓库

    
    # linux 中commit信息用单引号,windows中使用双引号
    git add 文件名/ *.文件后缀
    git commit -m ""
    
  • 查看项目的当前状态

    #文件状态:
    #   ?? 表示新添加的或未跟踪的文件
    #   A 表示新添加的未跟踪文件
    #   M 表示修改过的文件,M在左边表示该文件被修改了并放入了暂存区,M在右边表示该文件被修改了但是还没放入到暂存区
    git status
    
    # 以精简的方式显示文件状态
    git status -s
    
    
    
  • 工作区已修改未提交到暂存区但想丢弃修改

    git checkout -- [file]
    
    
  • 工作区已修改并提交到了暂存区但想丢弃修改

    
    git reset HEAD [file]
    

4. 命令相关

  • git add 命令:将工作区文件添加到暂存区

    #添加一个或多个文件到暂存区
    git add [file1] [file2]
    
    #添加指定目录到暂存区,包括子目录
    git add [dir]
    
    #添加当前目录下所有文件到暂存区
    git add .
    
  • git diff 命令:比较暂存区和工作区的文件差异

    # 尚未缓存的改动,查看暂存区和工作区的差异
    git diff
    
    # 查看已缓存的改动即提交到暂存区的改动
    git diff --cached
    git diff --staged
    
    # 查看已缓存的与未缓存的所有改动
    git diff HEAD
    
    # 显示摘要而非整个diff
    git diff --stat
    
  • git commit 命令:提交暂存区文件到本地仓库

    
    # 提交暂存区的指定文件到本地仓库 message可以是一些备注信息
    git commit -m [message]
    
    # 提交暂存区的指定文件到本地仓库
    git commit [file1] [file2] -m [message]
    
    # 添加-a参数,修改文件后不需要执行git add命令,直接提交
    git commit -am [message]
    
  • git reset 命令:回退版本

    # --mixed 为默认参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变
    # --soft参数用于回退到某个版本
    # --hard参数撤销工作区中所有未提交的修改内容,将暂存区和工作区都会退到上一次版本,并删除之前的所有信息提交
    
    # HEAD说明:HEAD表示当前版本,HEAD^上一个版本,HEAD^^上上一个版本,HEAD^^^上上上一个版本以此类推。也可以用 ~数字表示,HEAD~0表示当前版本,HEAD~1上一个版本,HEAD~2 上上一个版本,HEAD~3上上上一个版本
    
    
    git reset [--soft|--mixed|--hard] [HEAD]
    
  • git rm 命令:删除文件

    # 将文件从暂存区和工作区中删除
    git rm [file]
    
    # 强行删除工作区和已修改过并放入到暂存区的文件
    # f参数:强制  r参数:递归删除,后跟目录时需添加
    git rm -rf [file]
    
    # 将文件从暂存区删除,但仍想保留在当前工作目录中
    git rm --cached [file]
    
  • git mv 命令:移动或重命名一个文件,目录或软链接

    
    # 重命名
    git mv [file] [newfile]
    
    # 如果新文件名已经存在,强制命名
    git mv -f [file] [newfile]
    
  • git log 命令:查看历史提交记录

    git log 
    
    # 查看历史记录的简洁版本
    git log --oneline 
    
    # 查看历史中什么时候出现了分支,合并
    git log --graph
    
    # 逆向显示所有日志
    git log --reverse
    
    # 查找指定用户的提交日志
    git log --author=name
    
  • git blame 命令:查看指定文件的修改记录

    git blame filename
    
  • git remote 命令

    # 显示所有远程仓库 origin为远程地址的别名
    git remote -v 
    
    # 显示某个远程仓库的信息
    git remote show [远程仓库地址]
    
    # 关联远程版本库 并推送
    git remote add [本地仓库对远程仓库起的别名,一般为origin] [远程仓库地址]
    # 第一次加-u参数,以后直接使用git push 即可
    git push -u origin master
    
    # 删除关联的远程仓库
    git remote rm [远程仓库名]
    
    # 修改仓库名
    git remote rename old_name new_name
    
  • git fetch & git merge 命令:从远程仓库提取更新的数据并合并到当前分支、

    git fetch [远程仓库别名]
    
    git merge [远程仓库别名/分支名]
    
  • git pull 命令:从远程获取代码并合并本地的版本

    git pull [远程主机名] [远程分支名]:[本地分支名]
    
  • git push 命令:将本地的分支版本上传到远程并合并

    git push [远程主机名] [本地分支名]:[远程分支名]
    
    # 强制推送
    git push --force origin master
    
    # 删除主机的分支
    git push origin --delete master
    
  • git branch 命令:列出分支

    # 列出分支
    git branch
    
    # 创建分支
    git branch branch_name
    
    # 切换分支
    git checkout branch_name
    
    # 创建分支并立即切换
    git checkout -b branch_name
    
    # 删除分支
    git branch -d branch_name
    
    # 合并分支,将其他分支的内容合并到主分支上
    git merge [分支名]
    
    # 合并如果有冲突,需要手动修改 并且 git add 告诉git文件冲突已经解决
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值