卢纳黍的想疗院


一个不务正业,爱纹身、爱金属乐、玩乐队、Bug制造专业的前端程序猿~


常用的Git命令及特殊问题场景怎么解决

转载自:https://juejin.cn/post/6934487656873082887?utm_source=gold_browser_extension

前言

初衷: 记得刚入行时,Git工具使不明白老是代码有冲突,甚至跟同事的代码都不同步(想想那时候都难)。最近整理一下Git笔记命令分享给大家,避免大家出错。

适合人群: 前端初级开发,大佬绕道。

内容结构: 常用的基本操作命令 -> 特殊问题的场景怎么解决。

常用的基本操作

git init

这个git init不用多说,大家都知道这个命令是初始化当前目录变成可以使用git管理的仓库,并且是空的。

git clone ${url}

通过git clone命令从远程地址下载出来,这个也不用过多描述。

git status

git status查看本次本地有多少个文件发生变更。可以看到index.cssd和index.html发生变更

git log

git log查看当前提交的日志。

git diff

git diff是查看当前改动的文件具体代码内容比对。

git checkout .

git checkout .就是所有有改动的全部恢复到原来的样子, 当然也可以恢复指定的如:git checkout index.css只恢复这个文件当前的修改。

git add .

git add .是将修改的内容新增到暂存区,也可以提交指定的的文件。

git commit -m "你的要提交的注释"

git commit -m这里的内容从暂存区写入到对象库中, 注意注释必须写。

git tag

查看当前tag标签

git tag tagName(你的tag名称)

新建一个Tag标签

git tag -a tagName -m "tag备注"

新建一个tag标签带有备注信息

git show tagName(你的tag标签名)

查看当前tag备注信息

git push origin tagName(你的tag名称)

git push origin v1.0推送到远程

git push origin branch(你的分支)

git push origin branch推送到远程仓库。

git pull origin branch(你的分支)

git pull origin branch 从远程拉取到本地。

git checkout branch(你的分支)

git checkout branch切换到别的分支上。

git checkout -b branch(你的分支)

git checkout -b branch(分支名称) 新建一个分支并切换到该分支上。

git branch -v

git branch -v查看当前的分支并且后面带有最后一次提交的信息

git branch -a

git branch -a查看当前所有的分支包括远程分支

git branch branch(你的分支)

git branch barnch(你的分支名称)新建一个本地分支。

git branch -D name(分支名)

git branch -D name(分支名) 删除本地分支,但是不能在当前的分支上删除当前分支,必须切换到别的分支上,删除其它分支。

git remote -v

git remote -v查看源地址

git remove remote name(源地址名字)

git remove remote name删除源地址。

git remote add name(源地址名字) 远程地址[url]

git remote add name url添加一个源地址为要提交仓库的地址。

git fetch origin name(远程分支名称)

git fetch origin name如果我们本地没有该分支,远程有该分支,我们先拉下来远程分支,并且新建本地分支和远程分支关联上就可以了。

git merge name(要合并的分支名称)

git merge name(要合并的分支名称)将要合并的分支合并到其它分支上。将test分支上的代码合并到develop上。

特殊问题场景怎么解决

只想把一个提交合并到其它分支上

比如一个场景develop分支上有一些特殊的代码,所以不能把这个分支上的代码合并到test分支上,我们只想合并当前修改的代码,该怎么办呢git cherry-pick就是用来解决这问题的,来看下面例子。

上面example中,git cherry-pick后面跟着一个id这个id就是别的分支提交记录的id,查看这个id的话上面说过了使用git log查看日志。我这个案例代码是没有发生冲突情况的,那么有的小伙伴发生冲突的话,先解决冲突然后git add .在git cherry-pick --continue这个参数是继续执行当前的git cherry-pick过程。下面来查看几个参数

--continue 用户解决代码冲突后,第一步将修改的文件重新加入暂存区(git add .),第二步使用下面的命令,让 Cherry pick 过程继续执行。
--abort 发生代码冲突后,放弃合并,回到操作前的样子.
--quit 发生代码冲突后,退出 Cherry pick,但是不回到操作前的样子

如果commit时注释写错了怎么办?

git commit --amend -m "重新提交注释"

远程强制覆盖到本地
$ git fetch --all(下载远程库的所有内容)
$ git reset --hard origin/master(远程的分支名称)
$ git pull
commit提交完怎么撤回

git reset HEAD~1撤回刚才的注释,如果提交了2次commit那么就撤回2次git reset HEAD~2。

Git开发错分支了
没提交代码时
git add .
git stash (把暂存区的代码放入到git暂存栈)
git checkout name(切换到正确的分支)
git stash pop(把git暂存栈的代码放出来)
提交代码后
git reset HEAD~1  (最近一次提交放回暂存区, 并取消此次提交)
git stash (暂存区的代码放入到git暂存栈)
git checkout (应该提交代码的分支)
git stash pop (把git暂存栈的代码放出来)
git checkout  (切换到刚才提交错的分支上)
git push origin 错误的分支 -f  (把文件回退掉)
建议打赏金额1-10元

支付宝打赏

微信打赏

更早的文章

LNMP一键部署PHP / NGINX / MYSQL

下载并安装lnmp以下为Demo,实际情况按需调整wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz &&…

运维 继续阅读
comments powered by Disqus