Git Syntax

Git Syntax

Git Workflow

git_workflow

Git Version Control Rules

  • Commit related changes
  • Test code before you commit
  • Use branches
  • Commit often
  • Write good commit messages
  • Agree on a workflow
  • Don’t commit half-done work
  • Version control is not a backup system

Syntax Cheat Sheet

Original syntax Alias Purpose
git help <command> N/A 获得命令的帮助指南
CREATE
git init N/A Git仓库初始化
git clone <address> N/A 克隆一个现存的库
LOCAL CHANGES
git add <file> ga <> 添加指定文件
git add --all / git add . gaa 添加所有修改文件
git commit -m "info" gcmsg “” 提交文件到仓库
git commit --amend N/A 修改上一次commit内容
git status gst 检查仓库当前状态
git status -sb gsb 精简检查仓库状态
git diff gd 查看修改内容
git diff HEAD -- <file> N/A 查看工作区与版本库的区别
COMMIT HISTORY
git log glg / g lg 查看历史记录
git reflog N/A 记录每一次命令,可以查要回到未来的版本
git blame <file> N/A 查看指定文件的更改记录
UNDO
git reset --hard <HEAD^> grhh <> 回退到指定版本(commit id)
git reset HEAD <file> grh HEAD <> 将暂存区的修改撤销,放回工作区
git checkout -- <file> gco – <> 撤销最近一次修改
BRANCHES & TAGS
git checkout -b <branchname> gcb <> 创建一个分支并直接切换到该分支
git checkout <branchname> gco <> 切换到一个分支
git branch gb 查看当前分支
git branch <branchname> gb <> 创建一个分支
git branch -d <branchname> gbd <> 删除一个分支
git branch -D <branchname> N/A 强制删除一个分支
git merge <branchname> gm <> 合并分支
git merge --no--ff -m "info" <b> N/A 合并分支并禁用Fast forward
git tag <v1.0> N/A 打一个新标签
git tag N/A 查看素有标签
git tag <v1.0> <commit id> N/A 给指定历史提交的commit打标签
git tag -a <v> -m "info" <cid> N/A 打标签的同时增加说明文字
git show <tagname> N/A 查看标签信息
git tag -d <v1.0> N/A 删除指定本地标签
STASH
git stash N/A 将工作区内容储藏起来
git stash save "info" gsta “” 将工作区内容储藏起来,并加注释
git stash list gstl 查看stash列表
git stash pop gstp 恢复最顶层暂存区并删除
git stash apply <stash@{0}> gstaa <> 恢复指定暂存区
git stash drop <stash@{0}> gstd <> 删除指定暂存区
UPDATE & PUBLISH
git remote -v grv 查看远程库信息
git push <orgin master> gp <> 推送到远程服务器
git push orgin master gpom 推送到远程master分支
git pull gl 抓取最新更新
gcb <branch> origin/<branch> N/A 在本地创建与远程分支对应的分支
gb --set-upstream-to <> origin/<> ggsup 建立本地分支与远程分支的链接关系
git branch -dr origin/<branch> N/A 删除远程指定分支
git push origin :refs/tags/v1.0 N/A 删除远程指定标签
git push origin <tagname> N/A 推送指定本地标签到远程
git push origin --tags N/A 推送全部本地标签到远程
git check-ignore -v <file> N/A 检查忽略规则

.gitignore

将需要忽略的文件添加进 .gitignore

生成SSH Key

一般生成在 ~/.ssh 目录下

1
2
ssh-keygen -t rsa -f youtkeyname.key          //-f 指定生成的密钥文件名字
ssh-keygen -t rsa -C "youremail@example.com" //-C 提供一个注释

创建新仓库 & 关联本地仓库

  • 先在GitHub上创建新respository后直接克隆到本地 (推荐方法)
1
git clone git@github.com:Username/projectname.git
  • 与本地创建的本地仓库关联
1
2
git remote add origin git@github.com:Username/projectname.git
git push -u origin master //第一次push未关联时候使用-u

云主机SSH快捷设置

~/.ssh/config 中设置

1
2
3
4
Host hostName
User user_name
HostName xxx.xxx.xxx.xxx // IP address
IdentityFile ~/.ssh/your_private_key // private key position, if needed

~/.ssh/known_hosts里存的信任ssh服务器列表


Author: Min Gao

License: CC BY-NC-SA 4.0

如需转载或引用, 请标注出处。