Git

国内淘宝镜像

常用命令

Git 状态

  • workspace: 工作区
  • Index/Stage: 暂存区
  • Repository: 仓库区(或本地仓库)
  • Remote: 远程仓库

全局配置

# 编辑 Git 配置文件
git config -e [--global]

# 安装Git后的第一步,配置用户名和邮箱
git config --global user.email "email@example.com"
git config --global user.name "Your Name"

# 让 Git 记住密码账号。
# 在 Git Bash 输入这个命令就可以了
git config --global credential.helper store

# 显示当前的 Git 配置
git config --list

# 删除配置
git config --unset --global <config>

创建版本库

# 在当前目录新建一个Git代码库
git init

# 新建一个目录,将其初始化为Git代码库
git init [dir]

# 克隆远程版本库到本地
git clone [url]

添加文件

添加指定文件到暂存区

git add .         # 添加当前目录所有改变的文件到暂存区
        <dir>     # 添加指定目录到暂存区
        <file>... # 跟踪指定的文件
        -f <file> # 强制添加 .gitignore 忽视的文件

删除文件

git rm <file>...        # 删除工作区的文件
git rm --cached <file>  # 停止跟踪文件但不删除

修改文件

# 文件改名
git mv <old> <new>

提交文件

提交暂存区到仓库区

git commit -m "commit message"  # 提交暂存区到仓库区
           --amend -m "message" # 如果代码没有任何新变化,则用来改写上一次 commit 的提交信息
           -v                   # 提交时显示所有diff信息

撤销

# 撤销工作目录中所有未提交文件的修改内容
git reset .                     # 已经 add . 但未 commit
          --hard HEAD^          # 有多少个^返回多少版本
          --hard HEAD~<number>  # 返回前第<number>个版本 
          --hard <commit_id>    # 返回<commit_id>这个版本
          HEAD <file>           # 把暂存区的修改撤销掉,重新放回工作区

# 撤销未`git add`的文件
git checkout -- <file>    # 用版本库里的版本替换工作区的版本
             HEAD <file>  # 撤销指定的未提交文件的修改内容

# 还原
git revert <commit_id>  # 撤销指定的提交

查看信息

git blame <file>  # 以列表方式查看指定文件的提交历史

git diff                  # 查看暂存区和工作区的差异
         HEAD             # 显示工作区与当前分支最新 commit 之间的差异
         --cached <file>  # 显示暂存区和上一个 commit 的差异

# 查看提交历史
git log                   # 查看所有提交历史
        --after            # 显示某个日期之后发生的提交
        --before           # 显示某个日期之前发生的提交
        -p <file>         # 查看指定文件的提交历史
        -graph            # 显示所有提交的依赖树
        --pretty=oneline  # 一行显示历史记录
        --stat            # 显示 commit 历史, 以及每次 commit 发生变更的文件

git reflog  # 查看所有提交记录(含版本号)

git status  # 查看有变更的文件

分支

# 分支
git branch                   # 显示所有本地分支
           -a                # 显示所有本地和远程分支
           -d <branch_name>  # 删除<branch_name>分支
           -r                # 显示所有远程分支
           <branch_name>     # 创建<branch_name>分支

# 切换
git checkout <branch_name>  # 切换到<branch_name>分支

标签

# 标签
git tag                # 显示所有本地标签
        <tag_name>     # 基于最新提交创建标签
        -d <tag_name>  # 删除<tag_name>标签

git checkout <tag_name>     # 切换到<tag_name>标签

合并衍合

# 合并
git merge <branch_name>  # "暴力"合并指定分支到当前分支,不管有无差别

# 衍合
git rebase <branch_name> # 一件件衍合指定分支到当前分支,有差别时提示

冲突的时候
<<<<<<<======= 之间为自己的代码
=======>>>>>>> 之间为别人的代码

如:

<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1

远程操作

# 添加远程库之前需要添加SSH密匙
ssh-keygen -t rsa -C "yourEmail@example.com"

# 远程库
git remote add remoteName git@github.com:name/remote.git  # 添加远程库
           -v                                             # 显示所有远程仓库
           show <remote>                                  # 查看指定远程版本库信息
           rm remoteName                                  # 删除远程库

# 下载远程仓库的所有变动
git fetch <remote>

# 下载代码及快速合并
git pull <remote> <branch>

# 上传代码及快速合并
git push <remote> --all        # 推送所有分支到远程仓库
         <remote> --force      # 强行推送当前分支到远程仓库,即使有冲突
         -u <remote> <branch>  # 使用 -u 选项指定一个默认主机,这样后面就可以不加任何参数使用git push
         <remote> <branch>     # 将本地master分支推送到<remote>的<branch>分支
         <remote>:<branch/tag> # 删除远程分支或标签
         --tags                # 上传所有标签

.gitignore

# 我是注释,Git 会忽视这里所选择的文件或文件夹
# 忽略 *.o 和 *.a 文件
*.[oa]
# 忽略 *.b 和 *.B 文件,my.b 除外
*.[bB]
!my.b
# 忽略 dbg 文件和 dbg 目录
dbg
# 只忽略 dbg 目录,不忽略 dbg 文件
dbg/
# 只忽略 dbg 文件,不忽略 dbg 目录
dbg
!dbg/
# 只忽略当前目录下的 dbg 文件和目录,子目录的 dbg 不在忽略范围内
/dbg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值