@[TOC]

git add [文件名]

  • 开始跟踪新文件
  • 或者把已跟踪的文件放到暂存区
  • 还能用于合并时把有冲突的文件标记为已解决状态等

    git status 查看文件状态

  • Untracked files:文件未跟踪
    在这里插入图片描述
  • Changes to be committed:文件已暂存
    在这里插入图片描述

  • Changes not staged for commit::文件未暂存

    git status -s 命令或 git status —short 查看简化报告

    在这里插入图片描述

符合 含义
右边M 修改未暂存
左边M 修改已暂存
MM 工作区被修改并提交到暂存区后又在工作区中被修改
A 新添加到暂存区的文件
?? 未跟踪文件

git diff 尚未暂存的改动

git diff —cached or —staged(功能相同)已经暂存的改动

git commit 将暂存区的内容提交

git commit -a -m 'added new benchmarks'

符合 含义
-m 添加提交信息
-a 把所有跟踪的文件提交(不在暂存区的也会提交)
—amend 用新的提交覆盖上一次的提交(不产生新的commit信息)

git rm [文件名] 不再跟踪

git rm —cached [文件名] 只从暂存空间中删除

git log 查看历史提交

git log -p -2
-p 查看每次提交的内容差异
-2 只显示最近两次的内容

git reset HEAD [文件名] 撤销文件暂存

git checkout — [文件名] 撤销文件修改(还原成上一次提交的样子)

git remote add [自定义简称] [远程仓库url]

git remote add pb https://github.com/paulboone/ticgit

git fetch [remote-name] 拉取远程仓库代码(不会自动合并)

git fetch pb

git pull == git fetch + git merge

git push [remote-name] [branch-name]

git push origin master 将 master 分支推送到 origin 服务器时

git branch [分支名] 创建分支

git branch -d [分支名] 删除分支
git branch --merged 已经合并到当前分支的分支
git branch --no-merged 尚未合并到当前分支的分支

git checkout [分支名] 切换分支

git checkout -b [分支名] 创建并切换分支

git merge [分支2名] 当前分支合并分支2

git rebase 变基:将一系列修改提交按照原有次序依次应用到另一分支上

一般我们这样做的目的是为了确保在向远程分支推送时能保持提交历史的整洁——例如向某个其他人维护的项目贡献代码时。 在这种情况下,你首先在自己的分支里进行开发,当开发完成时你需要先将你的代码变基到 origin/master 上,然后再向主项目提交修改。 这样的话,该项目的维护者就不再需要进行整合工作,只需要快进合并便可。
在这里插入图片描述