git 常用命令
总结一下git的常用命令,方便复习。 ### 创建版本库 1
2
3
4
5
6
7
8
9
10
11# 创建仓库
git init
# 将文件添加到仓库
git add readme.txt
# 将文件提交到仓库
git commit -m "wrote a readme file"
# 查看仓库状态
git status1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# 查看当前的工作目录与另外一个分支的差别
git diff readme.txt
# 查看历史记录
git log
# 查看输入的git命令历史
git reflog
# 带参数的git log
git log --graph --pretty=oneline --abbrev=commit
# 回退到上一个版本,上上个版本就是HEAD^^,上100个版本就是HEAD~100
git reset --hard HEAD^
# 回退到未来的某个版本
git reset --hard commit_id1
2
3
4
5
6
7
8# 查看当前工作目录与上次提交间的差异
git diff HEAD -- readme.txt
# 丢弃工作区的修改
git checkout -- file
# 撤销暂存区的修改,重新放回工作区
git reset HEAD file1
2
3
4
5
6
7
8# 从版本库中删除文件
git rm
# 恢复误删除的文件
git checkout -- readme.txt
# 查看远程仓库的详细信息
git remote -v1
2
3
4
5
6
7
8
9# 将本地仓库与远程仓库关联
git remote add origin https://github.com/toypipi/learngit.git
git push -u origin master
# 推送分支到远程仓库
git push origin master
# 克隆仓库
git clone1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# 创建一个新的分支并切换
git checkout -b dev
# 同上
git branch dev
git checkout dev
# 查看当前分支
git branch
# 合并指定分支到当前分支
git merge
# 删除分支
git branch -d dev
# 合并分支,使用--no-ff参数,表示禁用Fast forward
git merge --no-ff -m "merge with no-ff" dev1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24# 把当前工作现场“储藏”起来
git stash
# 显示当前的stash列表
git stash list
# 恢复“储藏”起来的进度并删除
git stash apply
git stash drop
# 同上
git stash pop
# 强行删除一个没有被合并过的分支
git branch -D <name>
# 在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
# 建立本地分支与远程分支的链接关系
git branch --set-upstream branch-name origin/branch-name
# 抓取远程的新提交
git pull1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26# 新建一个标签
git tag <tag_name>
# 查看所有标签
git tag
# 查看标签信息
git show <tagname>
# 创建带有说明的标签
git tag -a <tag_name> -m "version 0.1 released" <commit_id>
# 用私钥签名一个标签
git tag -s <tag_name> -m "signed version 0.2 released" <commit_id>
# 删除本地标签
git tag -d <tag_name>
# 推送标签到远程
git push origin <tag_name>
# 一次性推送全部尚未推送到远程的本地标签
git push origin --tags
# 删除远程标签,先删除本地标签,再执行以下命令
git push origin :refs/tags/<tag_name>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# 忽略某些文件时,需要编写.gitignore
# 将某些文件强制添加到git
git add -f <file_name>
# 查看gitignore规则
git check-ignore -v <file-name>
# 配置别名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1'
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"