Git常用命令总结

本篇是对自己学习git的一个小小的总结

创建版本库

windows安装git后, 在开始菜单里面 搜索“git bash”, 点击就能打开git命令窗口,切换到某个目录下,执行 git init ,则此目录变为git管理的仓库;

工作区、暂存区、分支

电脑上目录及文件,就是存在于工作区
在这里插入图片描述

版本库

上图中可以看到一个.git的隐藏目录,这个不是工作区,是Git的版本库。

在这里插入图片描述

版本库中存放了很多东西,其中包含:

  • 暂存区(stage):执行 git add后的文件存放在这里;
  • 分支(branch):git会自动为我们创建一个默认分支master,以及指向master分支的HEAD指针, 执行 git commit 以后的文件存放在当前分支上,我们可以通过 git checkout branch_name切换到其他分支;

git分支管理命令

git branch :查看本地分支

git branch -a :查看本地分支及远程分支

git branch -vv :查看本地分支和远程分支的关联关系

git branch -d branch_name :删除分支

git checkout -b branch_name:创建并切换到branch_name分支,此命令等同于以下两个命令

git branch branch_name : 建立branch_name分支

git checkout branch_name:切换分支到branch_name分支

git checkout -b <本地分支名> <远程主机名>/<远程分支名>: 新建分支时,将新建分支和远程分支做关联, 日历 git checkout -b dev origin/dev

git push -u <远程主机名> <本地分支名> :本地新建分支后,push时建立追踪关系

git branch --set-upstream-to=<远程主机名>/<远程分支名> <本地分支名>: 手动将本地分支和远程分支关联起来, 例如: git branch --set-upstream-to=origin/dev dev, 如果当前已经在dev分支,也可以省略本地分支名

git merge dev: 把dev分支合并到当前分支

git merge --no-ff -m “merge with no-ff” dev :在主分支上使用 --no-ff后,合并dev的代码后,即使删除dev分支,也会查看到历史分支信息,否则删除后看不到

git log --graph :查看分支合并图
git log --oneline --graph:查看分支合并图省略版,每个提交只显示一行

git的提交、比较、更新、回退相关命令

git fetch: 将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中

git pull: 此命令等同于git fetch + git merge,是将远程主机的最新内容拉下来后直接合并,这样可能会产生冲突,需要手动解决

git pull --rebase: 如果远程分支修改和本地修改的不是同一个文件,则本地可以先git add, git commit ,此时由于无法执行push,先然后执行git pull --rebase,然后就可以 push了;
如果执行 git pull --rebase时,发现远程和本地的修改有冲突,就会abort中断,此时需要去解决冲突,解决冲突后,执行 git add filename, 然后git rebase --continue
然后就可以把修改 git push 到远程了;

git stash :如果没有使用git pull --rebase,可能有冲突,此时也可以先放到暂存区,然后执行 git pull后,再执行git stash pop,然后有冲突的话就手动解决冲突,没有冲突就可以直接提交或者继续修改

git status: 查看工作区有哪些文件修改了;

git diff filename:显示filename这个文件修改了那些地方

git diff . :显示工作区所有修改了的文件位置

git add file_name:将filename这个文件添加到暂存区

git add . : 将工作区所有修改了的文件添加到暂存区

git commit -m "描述":将暂存区的内容都提交到当前分支上,并必须附上描述文字

git diff --cached: 显示暂存区所有修改了的所有内容

git diff HEAD : 显示工作区和暂存区修改了的所有内容

pwd:打印当前目录的路径

git log:显示所有提交记录;

git log --pretty=oneline : 打印git log,且每个记录只显示一行,方便查看

git reflog: 查看执行过的git命令的历史记录

git reset HEAD filename : 如果本地某个文件 git add后, 想要回退到工作区,则可以执行此命令 ;

git reset --hard HEAD^ : 将所有内容,回退到上一个版本,不管是在工作区、暂存区还是本地分支上的修改内容,都将被清空,并回到上一个commitid节点的内容, 此命令谨慎使用,以免清空了自己本地的修改

git reset --hard HEAD^^ :回退到上上个版本, HEAD^100回退到前100个版本, 如果把HEAD^替换为对应的commitid,则回退到这个commitid的版本;

git rm filename: 工作区新增了一个文件,如果执行git add后,想删除,则执行此命令,如果删不了,可以再在后面加上 -f

git push:把本地代码提交push到远程分支上, 这个命令要求本地分支和远程分支建立了联系, 若没建立联系使用下一个命令:

git push origin master: 把本地代码提交push到远程的master分支上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值