git方法

git基础命令

初始化仓库——git init

克隆现有的仓库 ——git clone <url>

将在工作区更改的文件 提交到 暂存区 ——git add 文件名

将暂存区的内容,添加到当前分支。——add commit -m "内容的描述"了;

时刻掌握仓库当前的状态(比如改动那些文件,但是还没有提交add或者commit)——git status

用git status只能查看仓库的状态,但是查询不到具体修改了什么文件内容,需要用git diff这个命令查看相较于上一次暂存都修改了些什么内容了(是工作区与已经commit或者暂存区的区别。) ——git diff

撤销对工作区修改,工作区的修改会消失。——git restore -- 文件名

用最近的git提交的版本,覆盖掉本地的工作区的修改。(git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”)—— git checkout -- 文件名

清空add命令向暂存区提交的关于file文件的修改(Ustage),这个命令仅改变暂存区,并不改变工作区。——git reset HEAD--文件名

版本回退,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。——git reset --hard HEAD^

查看,当前分支的,所有的commit记录(从这个仓库创建起的所有commit记录)——git log

如果觉得git log 输出的信息很乱——git log --pretty=oneline

记录你的每一次命令(包括commit,切换分支等)——git reflog

关于HEAD 和 master

HEAD 会指向 master,master 指向最新的提交,所以,HEAD 指向的就是当前分支。

关于分支命令

git checkout -b 分支名 —— (-b)代表两个部分:1. git branch 分支名。创建一个新的分支。2.git checkout 分支名切换到某分支下面。

git switch -c 分支名 ——代表两个部分:1. 创建分支。2. 切换分支git switch 分支名

git branch —— 可以查看当前所有的分支(本地的),当前分支前面会标一个*号。

git branch -r —— 查看远程分支。

git branch -v ——查看远程分支。

git branch -a ——查看远程和本地分支。

git branch -vv ——查看远程和本地分支之间的关系。

git branch -d 分支名—— 删除分支。

git merge 分支名—— 用于合并指定分支到当前的分支。

合并代码

对于多分支的代码库,将代码 从 一个分支 转移到 另一个分支,有两种情况:

需要另一个分支的所有代码改动 使用 git merge

只需要部分的代码改动(某几个提交) Cherry pick

git cherry pick <指定的commitHash> 就是将指定的commit提交,应用于其他分支。这会在当前分支产生一个新的提交,当然它们的哈希值会不一样。

git cherry-pick dev 命令的参数,不一定是提交的哈希值,分支名也是可以的,表示转移该分支的最新提交。(这句命令表示,将dev分支的最近一次提交,转移到当前分支。)

git cherry pick <hash1> <hash2> 这个命令将1和2的两次commit提交,都转移到当前分支。且会在当前分支生成对应两次新提交。

git cherry pick a..b 如果想要转移一系列的连续提交的简便语法。(这句的命令表示,可以转移从a到b的所有提交(注意不包括a,想要包括a,则使用git cherry pick a^..b ),他们必须按照正确的顺序放置:a早于b,否则命令将失败,但是不会报错。)

Cherry pick合并代码过程出现冲突

如果出现冲突,合并过程会停下来,让用户决定改怎么做。

git cherry-pick --continue 用户解决代码冲突后,第一步将修改的文件重新加入暂存区(git add .),第二步使用git cherry-pick --continue命令,让Cherry pick 过程继续执行。

git cherry-pick --abort 发生代码冲突后,放弃合并,回到操作前的样子。

git cherry-pick --quit 发生代码冲突后,退出cherry-pick,但不回到操作前的样子。

rebase操作

rebase 可以把本地未push的的分叉提交历史,整理成一条直线。

rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

git 标签

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

git 的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。

git tag <标签名> ——首先,切换到需要打标签的分支上,然后就可以打一个标签了。默认的标签是打在最新提交的commit上的。

git tag —— 可以查看所有标签。

git tag <标签名> <commitid> ——如果忘了打标签,找到对应的commitid即可。

git show <标签名> ——查看标签信息。

git tag -a <标签名> -m "描述" <commitid> ——可以创建带说明的标签,-a指定标签名 -m指定说明文字。

git tag -d <标签名>—— 删除标签。(因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。)

git push origin <标签名>—— 推送tag到远程。

git push origin --tags—— 一次性推送全部尚未推送到远程的本地标签。

git tag -d <标签名> + git push origin :refs/tags/<标签名> (从远程删除。删除命令也是push)

关于远程仓库

git remote——查看远程仓库的名字

git remote -v——查看fetch和push的地址

git remote show origin——会连接网络,查看本地分支与远程仓库分支的对应情况

git fetch --prune——可以把远程没有的,本地有的内容删除。git fetch不带参数只能把本地没有,而远程有的同步下来。

git fetch 和 git pull 的区别

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

git pull 是将远程主机的最新内容拉到本地后直接合并,git pull = git fetch + git merge ,但可能产生冲突,需要手动解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值