命令
command
git config
git commit
git add
git commit
git status
git diff
HEAD HEAD^ HEAD^^
git log
git reset --hard commitId
git reflog
工作区、版本库
stage,HEAD -> master branch
git 是对修改内容的记录
git checkout – file :丢弃工作区的修改
git reset HEAD file:将修改从stage 放回工作区
删除文件
rm file
git rm file
git commit -m “comment”
git checkout – file
ssh-keygen -t rsa -C “youremail@example.com”
创建远程库
关联远程库 git remote add origin git@server-name:path/repo-name.git
;
推送到远程库 git push origin master
删除关联 git remote rm origin , 查看关联 git remote -v
克隆远程仓库 git clone
branch
创建分支并切换
git checkout -b <name>
git switch -c <name>
创建分支 git branch <name>
切换分支 git checkout <name>
或 git switch <name>
合并分支 git merge <name>
将当前分支和<name>
分支合并
merge 时可能会 出现冲突,需要手动修改重新add 修改内容解决冲突之后 提交
通过git log --graph --pretty=oneline --abbrev-commit 可以查看分支图
git merge --no-ff -m “merge with no-ff” dev 合并分支时,加上--no-ff
参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并
分支策略: master 一般用来发版,dev 开发
git stash : 保存当前工作现场
git stash list
git stash apply <stash>
, 多次stash ,恢复指令的stash
git stash pop: 回到工作现场
git cherry-pick <commit>
: 把提交修改的内容合并到当前分支
git branch -D <branch>
强制删除没有合并的分支
查看远程库信息,使用git remote -v
;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name
,如果推送失败,先用git pull
抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
;
从远程抓取分支,使用git pull
,如果有冲突,要先处理冲突。
git rebase操作可以把本地未push的分叉提交历史整理成直线;
git rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
git tag
git tag <tag_name>
git tag
git tag <tag_name> <commit_id>
git show <tag_name>
查看标签信息
git tag -a <tag_name> -m <tag_comment> <commit_id>
git tag -d <tag_name>
git push origin <tagname
> 推送标签到远程
git push origin --tags 一次性推送所有标签
删除远程标签
- 删除本地,git tag -d <tag_name>
- 删除远程 git push origin :refs/tags/<tag_name>
自定义Git
忽略文件配置
官方参考 https://github.com/github/gitignore
忽略文件的原则是:
- 忽略操作系统自动生成的文件,比如缩略图等;
- 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的
.class
文件; - 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
创建.gitignore 文件,编写好之后提交到git
git check-ignore 检查文件编写是否正确
git add -f 强制添加已经忽略的文件
配置别名
- global 配置 git config --global alias.last 'log -1
- 文件配置 .git/config