git init 初始化一个仓库
git add <file> 可添加多个文件
git add . 添加文件夹中所有文件
git add -f <file> 强制添加
git commit -m "describe" 将修改提交到分支,-m后面为描述
git log 显示从最近到最远的提交日志
git reset --hard HEAD^ 回退到上一个版本,HEAD^^回退到上上个版本,HEAD~100
git reset --hard 1049a 回退到某次提交
git relog 记录了每一条命令
git status 查看状态
git diff HEAD -- readme 查看工作区和最新版本的区别
git checkout -- file 丢弃工作区的修改
git rm file 从版本库删除文件
ssh-keygen -t rsa -C "youremail@example.com" 生成公钥私钥
git remote add origin git@*** 本地与远程关联
git push -u origin master 本地仓库所有内容推送到远程,并关联分支
git clone git@*** 从远程库克隆一个本地库
git checkout -b <branch> 创建并切换到分支
git branch <branch> 创建分支
git checkout <branch> 切换到分支
git branch 查看当前分支
git merge <branch> 合并指定分支到当前分支,有冲突时需要修改好才能合并
git branch -d <branch> 删除分支
git branch -D <branch> 强行删除未合并的分支
git log --graph --pretty=oneline --abbrev-commit 查看分支合并情况
git merge --no-ff -m "merge with no-ff" dev 禁用Fast-Forwad
git stash 把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list 查看
git stash apply 恢复,但stash内容不删除
git stash apply stach@[0]
git stash pop 恢复的同时把stash也删掉了
git remote -v 查看远程库信息
git push origin <branch> 推送到远程分支
git branch --set-upstream-to=origin/dev dev 设置本地dev分支与远程dev分支链接
git tag <tagname> 新建一个标签,也可以指定commit id
git tag -a <tagname> -m "test" 指定标签信息
git tag 查看所有标签
git tag -d <tagname> 删除标签
git push origin <tagname> 推送标签
git push origin --tags 推送所有标签
git push origin :refs/tags/<tagname> 删除远程标签,之前要先删除本地标签
在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore
忽略文件的原则是:
- 忽略操作系统自动生成的文件,比如缩略图等;
- 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
- 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
最后一步就是把.gitignore也提交到Git,就完成了!
使用Windows的童鞋注意了,如果你在资源管理器里新建一个.gitignore文件,它会非常弱智地提示你必须输入文件名,但是在文本编辑器里“保存”或者“另存为”就可以把文件保存为.gitignore了。