设计思路
- 工作区(Working Directory)、版本库(Repository)、暂存区(Stage or Index)
- HEAD指针
(来自廖雪峰的git教程) - branch,时间线
(来自廖雪峰的git教程)
创建repository
(0.在目标文件夹打开GIT bash)
echo "# RepoName" >> README.md #创建README.md
git init #初始化
git add README.md file1 file2 ... #添加至缓存区
git commit -m "init" #提交代码
git remote add GitURL #连接远程仓库
git push -u origin master #提交至远程仓库,-u:关联本地和远程库,关联后可不加
退出commit
esc + ZZ(大写)
文件操作相关
pwd #print working directory
ls #list files
ls -ah #list files including the hidden
cat filename#查看文件内容
rm filename#删除文件
查看、回退历史版本(branch->工作区)
git log#查看历史环境,英文状态下按q退出
git log --pretty=online
git reset --hard HEAD^ #版本回退,HEAD:当前版本(一个指针),^回退一个版本
git reset --hard HEAD^^
git reset --hard HEAD~100
git reset --hard commitID
git reflog #查看历史命令
查看、撤销修改(stage->工作区)
git diff HEAD -- filename#查看工作区与当前版本的区别
git checkout -- filename#让文件会到上一次git add 或git commit 的状态,也可恢复文件
git reset HEAD filename#将工作区中某一文件变为指定版本暂存区的文件
git reset comID filename
删除文件
rm filename #删除工作区文件
git rm filename #删除暂存区指定文件
git rm --cached #移除缓存
git checkout -- filename #恢复删除文件
远程仓库
git remote #查看远程仓库
git remote -v #查看详细信息
git remote add origin git@github.com:username/reponame.git #关联远程仓库,远程库的名字是origin
git remote add gitURL
git push [-u] origin master #推送至远程仓库
git clone git@github.com:username/reponame.git
git clone gitURL
git checkout -b localname oringin/dev #在本地创建和远程仓库非master分支一样的分支
git pull <remote> <branch>#合并远程仓库的分支
git branch #--set-upstream <branch> <remote/origin>
分支
git branch bname#创建分支
git checkout bname#切换分支
git checkout -b bname#创建并切换分支
git branch #查看分支
git merge bname#合并到当前分支(fast-forward把master指向bname的修改处)
git merge --no-ff -m "merge with no-ff" bname#禁用fast-forward模式,会再历史记录中显示,常用来修复bug
git -d branch bname # 删除
git -D branch bname # 不合并删除
git log -- graph # 查看时间分支线
git push origin :branch_name # 删除github分支
git checkout -b localname origin/remotename # 从远程分支拉取代码并创建本地分支
config配置
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%
d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
git config --global alias.cm commit
git config --global user.name "..."
git config --global user.email "..."
git config --global --list # 查看配置
git config --system --list
git config --local --list
分支管理模式
- master
- dev
- issue
- feature
骚操作
help
git anything --help
忽略某些文件
添加.gitignore文件
在README中加入脚注(页面跳转)
- 在底部定义脚注
<a name="name">label</a>: Footnote content goes here<!--<a>表创建超链接-->
- 在文档其他位置
<sup>[label](#name)</sup><!--[label]为显示的内容,(#name)是表超链接-->
Github 镜像站
github.com.cnpmjs.org
储存用户名和密码
git config --global credential.helper store