设为首页 | 加入收藏

欢迎访问幸运彩票官网3132-幸运彩票官方网站-幸运彩票导师计划

幸运彩票官网3132 >> 幸运彩票官网3132-这份Git 日常操作清单,你都用到了吗

前置条件:

在正式开端之前,咱们需求先确认几个概念。下面所说到的 master 分支默以为代码提交的主分支。

本地分支和长途分支

本地分支是指咱们在日常开发中自己经过 git checkout branch xxx 树立的分支,长途分支是咱们经过 git push -u origin xxxx 推到 git 服务器的分支,在咱们推送之后,git 会帮咱们在本地树立一个以 orgin/ 最初的分支,这个咱们也叫长途分支。

咱们日常操作的便是本地分支 xxx 和长途分支 origin/xxx,origin/xxx 便是长途的 git 服务器在咱们本地树立的一个分支的对照版别(我觉得这样说应该比较简幸运彩票官网3132-这份Git 日常操作清单,你都用到了吗单了解),咱们日常的 git fetch --狡兔三窟all 便是将本地的 origin/xxx 与 git 服务器的 origin/xxx 分支进行同步。

commit id

咱们每次提交代码都会依据本次提交的内容生成一个简直仅有的 id ,这个 id 重复的概率简直为 0,咱们能够这样了解,咱们每次的提交都会生成一个仅有索引的记载,不管是本地的 git,仍是长途的 git ,咱们都将她了解为一个数据库,只需咱们进行了 commit 操作,那么能够简直确认,咱们的代码是不会丢掉的,咱们都能够经过 commit id 找到那条提交记载的内容。

本篇文章不会解说,分支与分支之间的版别比较等内容,作者比较菜,怕把握欠好度翻车。

运用指南

创立分支

创立分支咱们能够运用 git checkout branch xxx 来创立一个新分支,这个很简单了解,可是假如咱们现在在分支 branch-1,可是咱们想新建一个依据长途 master 最新版别的分支,咱们该怎么办呢,不能说现在我回到 master,然后 git pull 拉取最新的 master 分支代码,然后创立分支,很繁琐对不对。

这儿咱们就能够进行里一个操作了:git fetch --all 记住咱们上面说到的吧,同步长途分支代码, --all 能够改成 origin/master ,然后进行 git checkout branch xxx origin/master 后边的 origin/master 代表咱们是依据长途分支 origin/master 进行创立的。

追加提交记载

比方我现在现已在本地 commit 一次了,可是发现还有东西忘改了,假如我在 commit 一次就会生成两条记载,这样从提交记载上看或许不太美观,然后咱们就能够运用 git commit --amend对上一次的提交记载进行追加。

这个操作的条件是上一次提交必需没有推送到长途分支,不然,你会发现操作之后在进行 git push 会提示你版别不一致不允许提交,当然假如你能够确保提交没有过错,且这一个分支只要你自己一个人玩,那你就能够运用 git push -f 进行强制提交了,这个操作很风险,慎重运用。

merge 仍是 rebase

我比较喜爱 rebase 操作,所以在这儿就只会解说 rebase 操作了。rebase 的运用场景。

运用场景 1:

比方现在你在 branch-a 分支作业,可是这个使命有点困难,你现已在这个分支作业很长时刻了,很长时刻都没有同步 master 分支的代码了,然后同组的小伙伴兼并了一个新功用这个功用你需求运用,这个时分你就能够在当时分支运用 git rebase origin/master 了,这个操作会将你在这个分支的提交附加于最新的 master 分支版别之后,很明显这个操作之后你当时本地的 branch-a 和长途的 origin/branch-a 现已不一样了,所以有一个缺陷便是你只能挑选 git push -f 进行提交。

运用场景 2:

你同组的小伙伴修改了你在 branch-a 分支也修改正的代码,而且你的小伙伴现已提交了,这个时分,你的 branch-a 分支就会和 origin/master 分支有抵触,嗯,这个时分你也能够运用 git rebase origin/master 这个操作来处理抵触,并同步最新的 master 的代码。

运用场景 3:

你和小伙伴共同在 branch-a 分支提交代码,成果小伙伴比你先提交了,这个时分你再提交会发现版别不一致无法提交,这个时分咱们就引荐运用 git pull --rebase,其实 git pull 指令后边是有一个默许参数的那便是 --merge,会给咱们刚触摸 git 的同学形成许多费事。所以在这 git pull --rebase 是一个不错的挑选。

rebase 的别的一个骚操作:兼并 commit

git rebase -i HEAD~X x 代表从当时的提交记载往回回溯的提交记载的个数,履行这个操作之后咱们就能够看到一个这样的交互界面:



上面我的 x 是 5,所以在这会有 5 个记载,接下来咱们需求以一个记载为方针,将其他的记载全都兼并到方针记载:



咱们将其他的 pick 改为 s,s 是指 squash,下面截图的下面会有相应的解说,然后咱们只需求保存退出即可,接下来会跳出一个 commit message 填写的界面:



这个界面是让我为新的提交记载填写新的 commit message,这个可自行发挥,然后仍是保存退出即可。然后咱们运用 git log 就能够看到一个新的提交记载:



git cherry-pick

咱们或许会有这样一个运用场景,在分支 branch-a 需求分支 branch-b 的某次提交,这个时分咱们就能够先找到 branch-b 的那次提交记载的 id,然后在 branch-a 分支进行 git cherry-pick b-commit-id 将 branch-b 分支的提交记载拿过来了

那假如咱们只需求 branch-b 分支的某个文件呢该怎么办呢,莫慌再交你一个操作,git checkout xxx file 这个操作能够将其他分支的文件拉取到当时分支,留意这个操作是掩盖式的,也便是假如你这个分支的这个文件已将存在,那么这个操作将会掩盖你当时分支的这个文件。能够发挥一下 xxx 也能够是长途分支。

git checkout branch -- file

那么这个操作又是干嘛的呢,这个操作能够将你的某个文件复原到某个分支的版别。假如某次你手误提交了过错的文件,可是改动又忘了,那么这个指令或许能够帮到你。

git prune

依据官方的解说,直白一点的翻译便是删去 git 数据库中不行拜访的目标,那我的了解是这样的,git prune 删去的是你本地 .git 下的 object 目录下,没有被运用到的 hash 值,我了解的是它会删去 origin/xx 最初的没有用到的分支,这个分支在你的长途的 git 服务器中现已删去可是本地任然存在 origin/xxx 的映射,这个时分你就幸运彩票官网3132-这份Git 日常操作清单,你都用到了吗能够运用 git prune 来删去本地的 origin/xxx 的映射。

可是官方引荐运用的是 git gc,而想删去本地的 xxx 分支,就只能只用 git branch -D XXX,在这附上一条咱们部分自己写的一个铲除本地无用分支的 shell git fetch --all --prune && git branch -vv | grep gone 幸运彩票官网3132-这份Git 日常操作清单,你都用到了吗| awk '{ print $1 }' | grep -v pit | xargs git branch -D。

git stash

git stash 能够协助咱们来暂存一些更改,我引荐的是假如仅仅少部分的更改,运用 stash 是能够的,多了的话,引荐新建分支来保存更改,避免自己忘记了哪个 stash。那咱们该怎幸运彩票官网3132-这份Git 日常操作清单,你都用到了吗么取出这些更改呢,最常用的便是 git stash pop 它会将你最新一次的 stash 从一个缓存数组里边推出来,这样的话假如咱们操作不妥很或许就丢掉了这些更改。

我引荐的是运用 git stash apply,这个会将你最新一次的 stash 从缓存数组里边 copy 一个副本返还给你,缺陷便是,你本地的 stash 数组会越来越大,当然,你能够守时清空一下。还有一个场景,假如我想取出指定的 stash 该怎么办呢,在这咱们能够运用 git stash list 来检查一下自己本地的 stash 记载的方式:



我圈出来的便是每次 stash 的类似于 id 的一个东西,后边会显现是在什么分支 stash 的,所幸运彩票官网3132-这份Git 日常操作清单,你都用到了吗以现在咱们就能够运用 git stash pop/apply stashid 来取出指定的 stash。



上一条      下一条
返回顶部