git常用指令

git 提交过程

在这里插入图片描述
在这里插入图片描述

git 常用指令

1、git add/stage

该命令主要用于把要提交的文件的信息添加到索引库中(亦即暂存区)。当我们使用git commit时,git将依据索引库中的内容来进行文件的提交。

通常是通过git add 的形式把我们 添加到索引库中, 可以是文件也可以是目录。

(git stage与git add作用相同,但是,为了消除歧义,建议使用git stage)

2、git commit

将git add添加的文件提交到版本库中

1)撤销commit

a)将提交记录回滚,代码不回滚
	git reset commit-id
b)将代码和提交记录全部回滚
	git reset --head commit-id
c)将部分代码文件回滚
	git checkout -- files
d) git commit –amend

2)合并commit

git merge branch-name
git rebase branch-name

merge是两个分支冲突后,新增一个commit追加到branch-name,而rebase则是将分支的commit记录追加到branch-name分支上。

与svn不同的是,SVN在添加新文之后每次修改的文件直接commit就可以了;而git需先执行git add

3、git diff / git diff --staged / git diff HEAD

git diff:是查看 workspace 与 index 的差别的。 
git diff --cached:是查看 index 与 local repositorty 的差别的。 
git diff HEAD:是查看 workspace 和 local repository 的差别的。(HEAD 指向的是 local repository 中最新提交的版本)

当一个文件做了stage(修改index),然后又做了一些修改,则:git diff 显示当前工作区的文件和stage区文件的差异git diff --staged 显示stage区和HEAD的文件的差异

4、git remote

列出所有远程主机

git remote -v  -- 同时查看远程主机网址
git remote show <主机名> -- 查看主机详细信息 	
git remote add <主机名> <网址> -- 添加远程主机
git remote rm <主机名>  -- 删除远程主机
git remote rename <原主机名> <新主机名>  -- 远程主机重命名

5、git fetch <远程主机名> <分支名>

将某个远程主机的更新,全部取回本地。例如:

a)、取回origin主机的master分支:
	git fetch origin master
b)、拉取所有分支的变化
	git fetch
c)、拉取所有分支的变化,并将远端不存在的分支同步移除
	git fetch -p

6、git pull

用于取回远程主机某个分支的更新,再与本地的指定分支合并。

git pull = git fetch + git merge
用法:git pull <远程主机名> <远程分支名>:<本地分支名>

若远程分支是与当前分支合并,则冒号后面的部分可省略。

git pull -r 执行的是 git rebase

7、分支管理

7.1、branch 指令

git branch  列出本地分支
git branch -r  列出所有远程分支
git branch -a  列出所有本地和远程分支
git branch [branch-name]  新建分支
git branch [branch] [commit]  新建分支,并指向指定的commit
git branch --track [branch] [remote-branch]  新建分支,并与指定的远程分支建立追踪关系
git branch --set-upstream [branch] ]  [remote-branch]  在本地分支和远程分支之间建立追踪关系
git branch -d [brand-name]  删除分支
git push origin --delete [brand-name]
git branch -dr [brand-name] 
删除远程分支

7.2、checkout 指令

git checkout -b [branch]  新建分支,并切换到新分支
git checkout [branch]  切换分支,并更新工作区
git checkout -    切换到上一个分支
git checkout -- filename 撤销指定文件的变动

7.3、merge 指令

用于把一个分支或或某个commit的修改合并到当前分支上

git merge [branch]  合并指定分支到当前分支

7.4、cherry-pick 指令

git cherry-pick [commit]   选择一个 commit,合并进当前分支

8、标签管理

git tag  列出所有标签
git tag [tag-name]  为当前 commit 新建一个 tag
git tag [tag] [commit]  为指定的 commit 创建一个 tag
git tag -d [tag]  删除本地 tag
git push origin :refs/tags/[tag] 删除远程 tag
git show [tag]  查看 tag 信息
git push [remote] [tag] 提交指定 tag
git push [remote]  --tags 提交所有 tag
git checkout -b [branch] [tag]  新建分支,并执行指定 tag

9、查看信息及改动

git status 显示有变更的文件
git log 显示当前分支的版本历史
git log --stat 显示commit历史,以及每次commit变更的文件
git log -S [keyword] 根据关键词搜索提交历史
git log [tag] HEAD --pretty=format:%s  显示每个commit之后的所有变动
git log [tag] HEAD --grep feature  显示某个 commit之后的所有变动,其提交说明必须符合搜索条件

显示某个文件的历史版本,包括文件改名
git log --follow [file]  
git whatchanged [file]

git log -p [file]  显示指定文件相关的每次diff
git log -n --pretty --oneline  显示过去 n 次提交
例如:git log -p -2 显示最近两次变动及变动点

git log dev ^master 查看 dev 分支有,而 master 分支没有的
git log master..dev 查看 dev 中比 master 多提交了哪些内容
git log dev...master 查看 dev 与 master 有哪些不一样

git blame [file]  显示指定文件是什么人在什么时间修改过


git diff  显示暂存区和工作区的代码差异(此时只是修改了文件,并未 add,也为执行 commit,commit之后则不会再有该信息)

git diff -w filename  显示指定文件的变动
git diff --cached [file]  显示暂存区和上一个commit的差异

git diff HEAD  显示工作区与当前分支最新commit之间的差异

git diff [first-branch] [second-branch] 显示所有有差异的文件的详细差异

git diff [first-branch] [second-branch] --stat 显示两 个分支之间的差异

git diff [first-branch] [second-branch] filename 显示两个分支中具体文件的差异

git diff --shortstat "@{0 day ago}" 显示今天你写了多少行代码

git show [commit] 显示某次提交的元数据和内容变化

git show --name-only [commit] 显示某次提交发生变化的文件

git show [commit]:[filename] 显示某次提交时,某个文件的内容

git reflog 显示当前分支的最近几次提交

git rebase [branch] 从本地master拉取代码更新当前分支:branch 一般为master
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值