资讯专栏INFORMATION COLUMN

团队合作必备的Git操作

ymyang / 652人阅读

编辑器&Mac

1、编辑器的使用vs code

插件

git辅助工具,可查看代码的书写者:Git Blame

2、 Mac工具使用

强大终端 item2

3、在 macOS 中完美配置文件名大小写敏感(解决git默认对大小写不敏感问题)解决git大小写不敏感

知识篇 一、git使用

一般企业中使用代码管理工具Git开发时都是通过拉分支进行功能细致开发,所以掌握git的分支操作时必要的

使用Git下载指定分支命令为:git clone -b 分支名仓库地址

初始开发git操作流程

本地创建公钥ssh-keygen -t rsa -C "邮箱"并配置

克隆最新主分支项目代码git clone 地址

创建本地分支git branch 分支名

查看本地分支git branch

查看远程分支git branch -a

切换分支git checkout 分支名(一般修改未提交则无法切换,大小写问题经常会有,可强制切换git checkout 分支名 -f非必须慎用)

将本地分支推送到远程分支git push <远程仓库> <本地分支>:<远程分支>


必备知识点

概念:

Remote:远程主仓库;

Repository:本地仓库;

Index:Git追踪树,暂存区;

workspace:本地工作区(即你编辑器的代码)

一般操作流程:《工作区》-> git status查看状态 -> git add .将所有修改加入暂存区-> git commit -m "提交描述"将代码提交到本地仓库->git push将本地仓库代码更新到远程仓库


一、git remote

为远程仓库指定别名,以便于管理远程主机,默认只有一个时为origin

查看主机名:git remote

查看主机名即网址:git remote -v

默认克隆远程仓库到本地时,远程主机为origin,如需指定别名可使用git clone -o <别名> <远程git地址>

查看主机的详细信息git remote show <主机名>

添加远程主机git remote add <主机名> <网址>

删除远程主机git remote rm <主机名>

修改远程主机的别名:git remote rename <原主机名> <新主机名>


二、git fetch

将某个远程主机的更新,全部/分支 取回本地(此时之更新了Repository)它取回的代码对你本地的开发代码没有影响,如需彻底更新需合并或使用git pull

远程主机的更新,全部取回本地git fetch <远程主机名>

将远程仓库特定分支更新到本地git fetch <远程主机名> <分支名>

如果需要将更新拉取但本地工作代码需要合并到本地某一分支git merge <被合并的远程分支>或者在此基础上创建出新分支并切换git checkout -b <分支名> <在此分支上创建>


三、git pull

拉取远程主机某分支的更新,再与本地的指定分支合并(相当与fetch加上了合并分支功能的操作)

拉取远程某分支并与本地某一分支合并(没有则默认会创建):git pull <远程主机名> <远程分支名>:<本地分支名>

如果远程分支是与当前所在分支合并,则冒号后面的部分可以省略:git pull <远程主机名> <远程分支名>

如果当前分支与远程分支存在追踪关系,则可以省略远程分支名:git pull <远程主机名>

如果当前分支只有一个追踪分支,则远程主机名都可以省略:git pull

三、git push

将本地分支的更新,推送到远程主机,其命令格式与git pull相似

将本地分支推送到远程分支:git push <远程主机名> <本地分支名>:<远程分支名>

如果省略远程分支名,则默认为将本地分支推送到与之关联的远程分支:(一般设置本地分支和与之关联的远程分支同名,防止混淆)git push <远程主机名> <本地分支名>

如果对应的远程分支不存在,则会被创建(m默认与本地分支同名)

如果省略本地分支名,则表示删除指定的远程分支,这等同于推送一个空的本地分支到对应远程分支:git push origin :<远程分支> 等同于 git push origin --delete <远程分支>

如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略git push origin

如果当前分支只有一个追踪分支,那么主机名也可以省略:git push

如果当前分支与多个主机存在追踪关系(使用场景相对来说较少),可以使用-u指定默认推送主机git push -u origin <主机名>设置时候需推送便可以直接使用git push

将本地的所有分支都推送到远程主机:git push --all origin

如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。如果一定要推送,可以使用--force选项(谨慎使用,除非你非常确认):git push --force origin

注意:分支推送顺序的格式为<来源地>:<目的地>,所以git pull格式:<远程分支>:<本地分支>git push格式为:<本地分支>:<远程分支>


四、分支操作

创建本地分支:git branch test:(创建名为test的本地分支)

切换分支:git checkout test:(切换到test分支)

创建并切换分支git checkout -b test:(相当于以上两条命令的合并)

查看本地分支:git branch

查看远程仓库所有分支:git branch -a

删除本地分支:git branch -d test:(删除本地test分支)

分支合并:git merge master:(将master分支合并到当前分支)

本地分支重命名:git branch -m oldName newName

远程分支重命名:

重命名远程分支对应的本地分支:git branch -m oldName newName;

删除远程分支:git push --delete origin oldName;

上传新命名的本地分支:git push origin newName;

把修改后的本地分支与远程分支关联:git branch --set-upstream-to origin/newName

分支关联:

查看当前的本地分支与远程分支的关联关系:git branch -vv

把当前本地分支与远程origin的某分支进行关联处理(通过 --set-upstream-to 命令):git branch --set-upstream-to=origin/feature/clear-server-eslint-error_180713

分支差异查看

查看本地当前分支与远程某一分支的差异:git diff origin/feature/reserve-3.4

查看本地特定分支与远程分支的差异:git diff master origin/feature/reserve-3.4 (查看本地master分支与远程feature/reserve-3.4分支的差异,如图)


五、修改撤销

git checkout -- <文件名>:丢弃工作区的修改,就是让这个文件回到最近一次git commitgit add时的状态。

git reset HEAD <文件名>:把暂存区的修改撤销掉(unstage),重新放回工作区。

git reset --hard commit_id:git版本回退,回退到特定的commit_id版本

流程:

git log查看提交历史,以便确定要回退到哪个版本(commit 之后的即为ID);

git reset --hard commit_id:回退到commit_id版本;

git reflog查看命令历史,以便确定要回到未来的哪个版本;

更新远程代码到本地
git fetch origin master(分支)
git pull // 将fetch下来的代码pull到本地
git diff master origin/master // 查看本地分支代码和远程仓库的差异

拉取远程分支并创建本地分支

git checkout -b 本地分支名 origin/远程分支名:使用此方式会在本地新建分支,并自动切换到该本地分支;

git fetch origin 远程分支名:本地分支名:使用此方式会在本地新建分支,但是不会自动切换到该本地分支,需要手动checkout。

六、配置

git config -l // 陈列出所有的git配置项

git config core.ignorecase false //配置git不忽略大小写(默认忽略)参照(git 大小写)


七、暂存

git stash 可用来暂存当前正在进行的工作,比如想pull 最新代码又不想commit, 或者另为了修改一个紧急的bug,先stash,使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作;

添加缓存栈:git stash;

查看缓存栈:git stash list;

推出缓存栈:git stash pop;

取出特定缓存内容:git stash apply stash@{1};

“积跬步、行千里”—— 持续更新中~,喜欢留下个赞哦!

往期经典好文:

JavaScript经典面试题汇总

我的前端面试日记

相关好文推荐:

http报文详解

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/dev...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/52648.html

相关文章

  • 团队合作必备Git操作

    编辑器&Mac 1、编辑器的使用vs code 插件 git辅助工具,可查看代码的书写者:Git Blame 2、 Mac工具使用 强大终端 item2 3、在 macOS 中完美配置文件名大小写敏感(解决git默认对大小写不敏感问题)解决git大小写不敏感 知识篇 一、git使用 一般企业中使用代码管理工具Git开发时都是通过拉分支进行功能细致开发,所以掌握git的分支操作时必要的 使用...

    tinyq 评论0 收藏0
  • java职场新人技能树

    摘要:本文以常见的互联网公司敏捷开发方式为例简要说明一个需求迭代过程中所需的各种能力阶段一方案设计开发需求文档的理解抓住重点主要关注数据的流向从哪里来到哪里去现有工程代码梳理快速定位代码所在数据流向页面接口开发者工具抓包工具协议的 本文以常见的互联网公司敏捷开发方式为例, 简要说明一个需求迭代过程中所需的各种能力. 阶段一: 方案设计 开发需求文档的理解(抓住重点, 主要关注数据的流向, ...

    DevYK 评论0 收藏0
  • 有价值前端技术点

    摘要:借着产品层面的功能和视觉升级,我们用对它进行了一次技术重构。前端优化是一个让人技术提升的,希望你也能从这里学到一些东西。年最流行的前端链接我们每周会给多名前端开发者发送新闻邮件。 面试 -- 网络 HTTP 现在面试门槛越来越高,很多开发者对于网络知识这块了解的不是很多,遇到这些面试题会手足无措。本篇文章知识主要集中在 HTTP 这块。文中知识来自 《图解 HTTP》与维基百科,若有错...

    microelec 评论0 收藏0

发表评论

0条评论

ymyang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<