Git 命令

一. 概述

        本文主要介绍关于 git 的命令以及其用法,可能并不全面,仅限于了解到并经常使用 git 命令,方便日后使用时进行查看、回顾。

二. 命令介绍

拉取仓库命令

git clone (github 上的 git 地址):可以将远端分支克隆到本地。

分支相关指令

git checkout -b 分支名称:创建并切出到创建的分支。

git branch <branchname(分支名称)>:创建新的分支,但是不会切出到此分支。

git checkout (分支名称):切换到指定分支,指定分支必然已存在,否则会报错。

git branch -d (分支名称):删除指定分支

git branch:查看本地所有分支,并查看当前所处分支。

git branch -r:查看远程所有分支。

git branch -a:查看本地和远程的所有分支。

git push origin --delete\[branchname\]:删除远程分支,删除后还需推送到服务器。

git branch -m <oldbranch><newbranch>:重命名本地分支。

上传本地提交

git push:将当前 branch 指向的 commit 提交到远端,同时将分支上的一系列 commits 提交到远端(只能用于已提交至远端的分支)

git push 仓库名 分支名:将分支提交到指定仓库的指定分支,可直接提交至远端(origin为当前仓库的默认名称)

合并其他分支

git merge 分支名称:从分支分叉位置开始,将目标分支的所有提交合并到当前分支形成一个 commits 提交到当前分支。

拉取远程的提交内容

git pull:从远端拉取分支的所有提交,其实现原理相当于把远端的提交都拉取到本地,再把这些提交 merge 到现在的分支。

git add 命令

git add 文件名:将文件加入暂存区。

git add .:保存新的修改和新建到暂存区。

git add -u:保存新的修改或删除到暂存区。

git add -A:暂存所有修改到暂存区。

注意:这里添加的改动是文件的改动不是文件名。

建议使用 add 命令进行保存文件修改时,使用 git add 文件名进行操作,防止有文件不能使用 git add .进行保存。

查看日志

git log:查看所有提交记录。

git log -p:查看提交记录详细信息。

git log -online -n:展示自己提交的最近的那条日志。

变基

git rebase 分支名:将提交记录的基准点设置为指定的分支。

merge 的提交往往和在日志树上形成一个一个的分叉,这样看来会有点混乱,所以我们可以使用 rebase 来形成一个单一的链式结构,使日志记录更加清晰。它的原理是把指定分支的最后一个提交作为我们分支的基础位置,然后把我们分支同指定分支的分叉位置起的所有提交,重新从基础位置再提交一次。

修正提交

git commit --amend:修正刚刚提交的内容。

上面的指令仅能修改最近一次的提交,如果想修改最近几次的提交,可用下面的指令。

git rebase -i 提交位置[^]:交互式 rebase 修正,其中 ^ 表示提交位置的前一个提交,^^ 表示前两个提交,也可以使用 ~num 表示前 num 个开始交互式变基。

注:rebase 过程中需要调整的提交记录要将对应的 pick 改为 eidt,退出就会开始 rebase,然后用 commit --amend调整记录信息,rebase -continue 继续 rebase 直至完成。

撤销提交

git reset --soft :回退到某个版本,只回退了commit的信息,修改完本地代码后,可以重新提交。

git reset --mixed:表示默认参数,为了重置暂存区的文件和上一次文件保持一致。

git reset --hard :表示回退到对应的版本。本地代码也会进行回退。

git reset --hard HEAD^:撤销上一个提交,清空工作区和暂存区。

git rebase -i rebase :-i 也可撤销,消除对应的 pick 即可。

git rebase --onto branch 提交起点 提交终点:将当前分支的起点到终点的提交记录 rebase 提交至目标分支。

注:起点位置不包括起点。

git revert :提交记录撤回指定提交记录的提交,原理是 git 提交一次同指定提交几率相反的操作。

关于撤销暂存区的内容至工作区的指令:

git reset HEAD -- .:注意最后的一个 . (点),此命令可以实现一次性撤销所有放入暂存区的文件。

git reset HEAD -- filename:撤销指定目标文件。

git rm --cached filename:撤销指定目标文件。

        以上三种方法只是将文件从暂存区中删除(撤销)了,并不会修改文件内容,也不会删除文件,在本地文件夹中还能找到,撤销后的文件状态是未被暂存的状态。

        同时使用 git rm -f filename命令也可以将文件从暂存区删除,但同时也会删除本地文件,回收站中也找不到,所以要慎重使用该命令来撤销暂存区的文件。

推送提交记录到远端

git push:推送提交记录到远端。

git push origin branch -f:强行推送。如果分支已经推送到远端,又在本地更改了 commits 提交记录,在不影响他人的情况下可以使用此命令强行提交至远端分支。

注:此命令不可以用于 master ,仅限于自己的分支,而求该命令会覆盖他人提交记录,使用时要格外小心。

git reset 命令

        reset 命令的本质是重置 head 位置以及 branch 位置,它可以用来清空本地改动内容,可以回滚本地提交,还可以将内容重置到指定提交记录处。

git reset --hard :提交记录重置 head 到指定位置,此时暂存区和工作区的提交记录会被直接删除。

git reset :提交记录重置 head 到指定位置,会把暂存区和工作区的内容均放入工作区。

git reset -soft :提交记录重置 head 到指定位置,会把因重置 head 位置产生的变动加入到暂存区。

git checkout 命令

git checkout branch|commit|文件名:checkout 命令就是签出指定的 commit ,可以签出分支、提交记录甚至文件。

git checkout -detachhead :和 branch 指针分离,此命令很少使用。

本地缓存

git stash:缓存未提交文件。

git stash pop:恢复缓存文件。

git stash -u:缓存包括 untrack 在内的文件。

git reflog 指令

git reflog branch:查看所有分支所有操作记录,有时可以用来找回删除的分支。

git clean 命令

git clean -[dfxn]:删除 git 目录下 untrack 文件。

git clean -d:删除未被添加到 git 路径下的文件。

git clean -f:强制运行。

git clean -x:仅删除 .gitignore 里标记过的文件,那些既不被 git 版本控制,又没有在 .gitignore 里的文件会被保留。

git clean -n:显示将要删除的文件和目录。

git diff 命令

git diff:比较当前工作区中文件的改动。

git diff -stagegit diff -cache:比较当前暂存区中文件与上次提交的差异。

git diff -stat:查看简单的 diff 结果。

git restore 命令

git restore <文件> :撤销指定文件的改动,只对版本库里的文件有效,默认撤销工作区中的改动。

--staged还原暂存区中指定文件至工作区。

git restore .:对所有文件进行同样的操作。

git fetch 命令

拉取远端的分支,不合并,与 pull 的区别在于 git pull = git fetch + git merge。

git fetch <远程主机名称>:将某个远程主机的更新全部取回本地。

git fetch <远程主机名> <远程分支名称>:<本地分支名称>:只取回特定分支的更新。

git fetch -p <远程主机名称>:删除本地缓存的远程分支信息(及远端已删除、本地已删除,但使用 git branch -a 仍可以看到的分支)

git revert 指令

git revert <commit>:撤销指定的提交,实质是对指定提交内容进行一次方向的提交。

git revert <commit1>..<commit2>:撤销指定 commit1 至 commit2 区间内的提交,不包括 commit。

git revert --no-commit :commit1revert 会后默认 commit ,--no-commit 会取消这次 commit ,改动仅放在暂存区。

git remote 指令

git branch:查看本地本地所有分支。

git remote:列出已存在的远程分支。

git remote -V | --verbose:列出详细信息,在每一个名字后面列出其远程 url 。

git remote add url:添加一个远程仓库。

git rm 指令

git rm:删除工作区文件,并将这次删除放入暂存区。

git rm -f:强制删除工作区文件,并且将这次删除放入暂存区。

git rm --cached:从索引中删除文件。但是本地文件还存在,只是不希望这个文件被版本控制。

git cherry-pick 指令

git cherry-pick <commit>:将指定提交记录提交到当前分支。

git cherryy-pick <commit1><commit2>..:将指定多个提交记录提交到当前分支,每个提交记录用空格分隔。

git grep 指令

git grep:检索文件中的文本内容。

grep 功能的强大参数有很多,具体使用时可以通过 grep -help 指令获取详细介绍。

三. 补充

修改本地Git的用户信息

git config --global user.name "sagewang";

git config --global user.email "sagewang@xx.com";

可以在下面的网址中学习 git 的相关命令,通过一步步教学引导很好地练习相关 git 命令。

Learn Git Branching

四. ending

        在进行开发过程中, git 命令使用十分频繁,在多人开发的过程中,使用 git 能更好地进行代码的管理也方便各人的代码管理和检查。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值