$ git add .
# 添加到暂存区(较新版本不需要)
$ git rm
# 将指定文件彻底从当前分支的缓存区删除,从当前分支的下一个提交快照中被删除
$ git mv a.txt ../a.txt
# 移动文件
$ git diff
# 查看差异
$ git status
$ git commit file_name -m "commit message"
# 本地动作,往本地的版本库中记录改动(本地仓库),不影响远端服务器
$ git commit -am "update" 提交全部
$ git commit --amend 修改最近一次提交内容(可修改提交的名字)
$ git log
$ git log -1 查看1条
$ git log --name-status 查看日志,显示改动的文件(A、D)
$ git push origin branch_name
$ git push origin branch_name:new_branch_name (# 本地分支名可以与远端分支名不同)
# origin 指的是远端服务器(默认,git remote 可查)
# Windows 对“分支名”大小写不敏感,推送时异常
$ git branch
# 查看当前本地工程所有的分支名称,“*”表示当前工作区所在
$ git branch -r
# 查看远端服务器上的分支,带有origin前缀的表示在远端;
# 查看远端服务器和本地工程所有的分支,执行git branch -a 即可
$ git branch new_branch # 新建分支,并不切换分支
$ git checkout -b new_branch # 新建分支,切换到新分支
$ git branch -d branch_name # 删除本地分支
$ git branch -D branch_name # 强制删除本地分支
$ git branch -d -r branch_name # 删除远程分支
# 删除后推送服务器
$ git push origin : branch_name
$ git checkout # 检出
$ git checkout branch_name
# 切换分支,也可以是某个提交节点或节点下某个文件
$ git pull
# 从远端服务器中获取某个分支的更新,再与本地指定的分支进行自动合并
$ git pull origin remote_branch:local_branch
# 如果分支名相同,直接执行
$ git pull origin remote_branch
$ git fetch
# 从远端服务器获取某个分支的更新到本地仓库,只获取,不合并
# 确定内容符合预期,再手动合并
$ git fetch origin remote_branch:local_branch
# 若分支名相同,执行
$ git fetch origin remote_branch
$ git merge branch_name
# 用于从指定的分支(节点)合并到当前分支
# git会将指定的分支与当前分支进行比较,找出二者最近的共同节点base,将指定分支在base之后分离的节点合并到当前分支上。(分支合并,实际是分支间差异提交节点的合并)
$ git rebase branch_name
# 用于合并目标分支内容到当前分支,和merge达到目的一样,但机制不同,风险不同
$ git reset commit_id (回退)
# 撤销当前工作区中的git add/commit操作,可将工作区内容回退到历史提交节点
$ git reset --mixed/hard/soft
$ git checkout .
# 用于回退本地所有修改而未提交的文件内容(用暂存区所有文件直接覆盖本地文件,没有确认,谨慎使用)
$ git checkout -filename
# 回退单个文件
$ git checkout commit_id
# 回退到某个历史提交
Git cherry-pick commit_id