git命令行

一、clone仓库到本地

1.在github复制仓库url

2.克隆仓库到本地
git clone [url]

3.进入仓库主目录,仓库主目录中有.git隐藏目录,里面包含了仓库的全部信息。进入仓库目录中,命令行会出现master,它就是当前所在的分支名

4.在github上创建仓库时,生成了仓库的默认主机名origin,并创建了默认分支master。GitHub可以看成是免费的Git服务器,在GitHub上创建仓库,会自动生成一个仓库地址,主机就是指代这个仓库,主机名就等于这个仓库地址。clone一个GitHub仓库到本地,本地仓库会自动关联到这个远程仓库,执行git remote -v查看本地仓库关联的远程仓库信息:

在这里插入图片描述

5.克隆远程仓库到本地时,还可以使用-o选项修改主机名,在地址后面加上一个字段作为本地仓库的主目录名

6.另一个其他Git教程中常见的命令git init,会把当前所在目录变成一个本地仓库,因为有GitHub,这个命令用不到

二、创建新的本地分支

1.首先,克隆远程仓库到本地,进入仓库主目录,执行git branch查看分支信息

这里出现错误
在这里插入图片描述

原因应该是测试的仓库是空仓库,刚创建的git仓库默认的master分支要在第一次有效的commit之后才会真正建立,否则就像声明了对象但是没初始化一样

决定换一个仓库进行测试
注意git bash里复制粘贴键不是C+S+c C+S+v,所以导致了以下错误

fatal: protocol 'https' is not supported

克隆时再次出现错误

fatal: unable to access 'https://github.com/fx147/desktop-tutorial.git/': OpenSS
L SSL_read: Connection was reset, errno 10054

原因:服务器的SSL证书没有经过第三方机构的签署,所以会报错

参考网上解决方案:解除ssl验证后,再次git即可

git config --global http.sslVerify "false"

在这里插入图片描述

至此,成功clone远程仓库

在这里插入图片描述

2.执行git branch [分支名]可以创建新的分支

3.执行git checkout [分支名]切换分支
在这里插入图片描述

4.手动创建分支并切换比较麻烦,可以使用git checkout -b [分支名]创建并切换分支

这里可以给常用操作设置别名

git config --global alias.br branch

git br -avv是显示分支详细信息

5.假设我们要在当前分支dev1上开发一个新的功能,需要增加一个文件new_func1,然后生成一个新的提交:
在这里插入图片描述

更改git-bash默认文本编辑器为vim

git config --global core.editor vim
//重新改回去
git config --global --unset core.editor
三、将新分支中的提交推送到远程仓库

1.执行git push [主机名] [本地分支名]:[远程分支名]即可将本地分支推送到远程仓库的分支中,通常冒号签好的分支名是相同的,如果是相同的,可以省略: [远程分支名],如果远程分支不存在,会自动创建:

在这里插入图片描述

2.执行git br -avv查看一下分支情况:
在这里插入图片描述

可以看到,远程分支origin/dev1的信息已经在本地存在,而且与本地同名分支一致

四、本地分支跟踪远程分支

执行命令git branch -u [主机名/本地分支名] [本地分支名]将本地分支与远程分支关联,或者说使本地分支跟踪远程分支。如果说设置当前所在分支跟踪远程分支,最后一个承诺书本地分支名可以省略不写:

追踪之前:
在这里插入图片描述

追踪之后:
在这里插入图片描述

执行git branch --unset-upstream [分支名]即可撤销该分支对远程分支的跟踪,同样地,如果撤销当前所在的分支的跟踪,分支名可以省略不写;

前面的操作是先将本地分支推送到远程仓库,使远程仓库创建新分支,然后再执行命令使本地分支跟踪远程分支,有没有办法在推送时就自动跟踪远程分支呢?在推送时,加入--set-upstream或其简写-u选项即可,现在切换到dev分支试一下这个命令:
在这里插入图片描述

疑问:远程追踪有什么作用呢?

五、删除远程分支

1.首先,删除远程分支,使用git push [主机名] :[远程分支名],如果一次性删除多个,可以这样:git push [主机名] :[远程分支名] :[远程分支名] :[远程分支名]。此命令的原理是将空分支推送到远程分支,结果自然是远程分支被删除。另一个删除远程分支的命令:git push [主机名] --delete [远程分支名]。删除远程分支的命令可以在任意本地分支中执行

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐