git 常用命令介绍

版本管理

1,git status 查看工作区和暂存区状态
2,git log 查看提交日志 --pretty=oneline 参数可以一行显示一个提交 --graph 查看分支合并图 --abbrev-commit 简写commit 哈希码
3,git checkout -- test.txt 在文件修改还没添加到暂存区前,可以还原修改,命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
4,git reset HEAD test.txt 在文件已经添加到暂存区时,使用此命令清空暂存区的修改,再使用git checkout -- test.txt 还原到当前版本
5,git add test.txt 将修改添加到暂存区
6,git reflog 查看历史操作的命令
7,git reset --hard HEAD^ 回退到上一个版本,HEAD^^ 上上个版本,HEAD~100 上100个版本,git reset --hard asd21 ,回退到直到指定版本
8,git diff HEAD -- test.txt 比较test.txt 文件当前版本和工作区的差异,- 表示前者内容,+表示后者内容,其他内容为没有冲突部分,@@ -41,7 +41,7 @@ 表示第41行后连续7行有变动以及变化情况
9,git log 或 git diff 后显示冒号,代表当前返回结果很多,没有完全显示,可以按回车或者↓键查看,按q结束
10, 标签是指向特定commit的指针,不可移动。git tag v1.0 创建标签,git tag 查看所有标签,默认标签是打在最新提交的commit上的,git tag v0.9 f52c633 在指定提交上打标签,git show v0.9 查看标签信息,git tag -a v0.1 -m "version 0.1 released" 1094adb 添加说明,git tag -d v0.1 删除标签,git push origin v1.0 推送标签到远程,git push origin --tags 一次性推送全部尚未推送到远程的本地标签,
删除远程标签: 1)先本地删除 git tag -d v0.9 2)远程删除 git push origin :refs/tags/v0.9

远程仓库

1,查看远程分支 git remote ,-v 显示详细信息
2,创建SSH Key : ssh-keygen -t rsa -C "[email protected]"
3,关联远程仓库 git remote add origin git@server-name:path/repo-name.git
4,git push -u origin master 指定默认分支,以后直接使用 git push
5,克隆远程仓库 git clone [email protected]:michaelliao/gitskills.git
6,git branch --set-upstream-to=origin/dev dev 本地dev分支与远程origin/dev分支的链接
7,git rebase 变基,把本地未push的分叉提交历史整理成直线

分支管理

1,HEAD 指向的是分支(master,master 指向master 分支的最新提交),分支是一连串提交构成的线


image.png

2,git branch dev 创建分支,只是创建了一个指针


image.png

3,git checkout dev 切换分支,HEAD指向dev,git branch dev 与 git checkout dev 可以使用一条命令代替 git checkout -b dev
新版命令: git switch -c dev 切换并创建分支dev

git switch master 切换分支
4,git branch 查看分支,* 表示当前分支
5,git merge dev 合并指定分支到当前分支
6, git branch -d dev 删除分支
7, 关闭分支合并的默认 Fast forward模式 git merge --no-ff -m "merge with no-ff" dev,Fast forward模式 删除分支后,会丢掉分支信息
8,git stash 存储工作现场,git stash list 查看, git stash appl 恢复,但不删除,git stash drop 删除,git stash pop 恢复的同时删除
9,git cherry-pick 4c805e2 复制一个特定的提交到当前分支,用于复制其他分支做的 bug修复
10,开发一个新feature,最好新建一个分支;如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除。

你可能感兴趣的:(git 常用命令介绍)