3

忙里偷闲的时候,有一好友又来问我关于Git的命令问题。(为啥是又,因为关于这个问题,他至少问了我三四五六遍了……每次讲完,过段时间必定忘!!!也不知脑回路是咋整的???)
为了让他这个经常记不住的童鞋不要每次都来问我相同的问题,我决定把他能用到的命令,都列出来,作用也标明。
童鞋,下次自己来看文章啊~~~
No.1 克隆远程仓库

git clone 远程仓库名 例如:https://gitee.com/****/****

No.2 查看远程分支

git branch -a

图片描述

注:当前分支 仅有master一个远程分支
20200204发现的问题,当远程分支删除清理一部分后,在本地git branch -a后,还是会看到那些我们已经删除的分支,看起来很不简洁。这时候,不要着急,不要慌。两行命令搞定:
第一步: git remote show origin
第二步: git remote prune origin

使用命令 git remote show origin,可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息;

使用 git remote prune origin 命令:这样就删除本地那些远程仓库不存在的分支

No.3 创建本地分支test,环境切换为test分支并推送至远程(此时test的所有内容均为master内容,也就是说,test分支是基于master的新的分支)

git checkout -b test
// 此时在文件夹中增加一个readme.txt文件(也就是说,test分支内容已更改)
// 将test分支推送至远程
git add .
git commit -m "add readme.txt"
git push --set-upstream origin test
// 仅有第一次推送至远程时需要以上的push命令 
// 在test分支之后更改内容推送至远程时 均使用git push即可

图片描述

No.4 多人协同开发过程中,出现场景为,同学A 在分支dev上开发,同学B在test上开发。此时同学B需要基于同学A的内容,开发新需求。操作步骤应为:将自己本地test分支推送至远程,确认无误后,切换为同学A的dev分支,同时基于dev分支创建新分支名为feature-dev,然后在新的分支上进行开发

// 先拉取最新内容
git pull
// 切换至dev分支 
git checkout dev
// 查看当前所在分支
git branch -a
// 新建并切换至分支 feature-dev
git checkout -b feature-dev
// 此时再次查看当前所在分支
git branch -a
// 当前所在分支为feature-dev 进行一些内容操作 例如:增加两张图片
git add .
git commit -m "add photo"
git push --set-upstream origin feature-dev
// 此时已经将feature-dev分支推送至远程 
// 接下来再修改内容需要add、commit、push即可

图片描述

No.5 现在情况是,我需要在同学A的dev分支上去合并我的feature-dev的东西,也就是说,我需要把我更改的内容,合并到人家dev的分支上。此时我应该做的是:git pull 先获取最新内容,然后切换至dev分支,然后合并我更改的内容

// 拉取最新 切换至dev

git pull 
git checkout dev
// 此时在dev分支,准备合并feature-dev的内容
git merge --squash feature-dev
// --squash 当在feature-dev分支上提交过很多回时,使用此命令可以将多条commit合并为一条
// 即为 多条合并 如果有错回退的时候也方便
// 如果有冲突,解决冲突,如果没有冲突即可提交
git add .
git commit -m "dev merge feature-dev"
git push
// 此时合并已完成

图片描述

No.6 嗯,我还没想到有啥常用的,有啥需要补充的随时补充吧~~~
补充1:这个补充来的有点快
No.7 同学正在修改dev分支,然后呢,临时任务,需要修改分支master,此时怎么办呢?
此时有几种情况:
1、在当前dev分支,git add ,然后git commit 提交,但是不需要push到远程。此时切换至master,master并不会有dev分支的任何修改。
2、在当前dev分支,git add ,然后呢,不想commit,怎么办呢!!! 此时我们可以git stash,此时呢,会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。然后我们切换到master去改东西,改完后切回我们的dev分支时,git stash apply,将我们刚刚储藏的东西再拉回来,好了,继续改我们dev的内容吧。
3、在当前dev分支,git add ,然后呢,不想commit,也不想stash,直接切换分支,此时魔鬼操作来了!!!你在dev的修改东西全部带进master,魔鬼操作,你只是想修改个master的东西,竟然把你不想提交的东西也带过来了。魔鬼不!!!所以这种操作不可取,不可取,不可取!!!除非你确实想把dev的东西带到master。?


瑾小瑜
200 声望12 粉丝