git--远程仓库的命令--使用/实例

原文网址:git--远程仓库的命令--使用/实例_IT利刃出鞘的博客-CSDN博客

简介

        本文介绍git远程仓库相关命令。包括:clone、push、fetch、pull、update、查看远程仓库信息等。

克隆(clone)

命令

命令

作用

git clone [options]

下载一个项目和它的整个代码历史。

示例:

git clone [email protected]:xxx/Demo.git             //新建Demo文件夹,并将文件放进去
git clone https://githee.com/xxx/Demo.git ./    //不新建文件夹,将文件放在当前目录,

git clone -b develop https://gitee.com/shapeless/dubbo-admin.git

选项

git clone [-b <name>][url] [dir]

选项 作用

选项(其他选项见git clone --help)

url

项目所在的远程仓库。

dir

指定dir

-b 分支名

指定要克隆的分支。若不指定,则为master

git clone https://xxx与git clone git@xxxx的区别

https

git

用户类型 任意用户可克隆 必须是要克隆的项目的拥有者或管理员,且先添加 SSH key ,否则无法克隆
账号密码

clone:不需要账号与密码。(若提示输入,跳过即可)

push:需要验证用户名和密码的

clone:不需要账户与密码

push:不需要用户名。若配置SSH key的时候设置了密码,则需要输入密码,否则不需要密码。

git clone xxx.git和git clone xxx区别

xxx.git

xxx

工作位置

bare repositories(服务端)

working tree(本地)

查找位置

git clone xxx.git :git 只找 xxx.git。

git clone xxx :git 先找 xxx ,若没有,找 xxx.git

--bare选项

git init --bare 生成bare repositories

只会接收 push,不会进行本地开发。

生成的文件/文件夹是在指定目录的,如下图左侧。

git init 生成working tree

用于本地开发。

生成的文件/文件夹是在指定目录下的 .git 目录下,如下图右侧。

拉取(fetch/pull/update)

远程获取到本地

命令

作用

git fetch [remote_name] [--all]

将远程主机的最新内容拉到本地。想要与本地分支合并要手动git merge。

git remote update

下载远程仓库的变动。等价于:git fetch [remote_name] --all

git pull [remote_name] [branch]

将远程主机的最新内容拉下来后与本地分支合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

pull和fetch的区别

git fetch:将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到本机分支中。
git pull:将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。 

推送(push)

本地推送到远程

命令

作用

git push [远程主机名] [本地分支名]:[远程分支名] [其他选项]

上传本地指定分支到远程仓库。

常用命令:git push origin master

选项

选项

作用

--force

强行推送当前分支到远程仓库,即使有冲突

--all

推送所有分支到远程仓库

--tags

推送tags到远程仓库

示例

命令 作用

git push origin master

省略远程分支名:将本地分支推送到与之存在"追踪关系"的远程分支(通常两者同名),若该远程分支不存在,则被新建。

git push -u origin master

        若当前分支与多个远程主机存在追踪关系,可使用-u选项指定默认主机,后面就可不加任何参数使用git push

        git push -u origin master :此命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。比如:git push代替git push origin master

git push origin :master

若省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。

等同于git push origin --delete master

git push origin

若当前分支与远程分支之间存在追踪(对应)关系,则本地分支和远程分支都可以省略

git push

若当前分支只有一个追踪(对应)分支,那么主机名都可省略

增/改/删 远程仓库

命令 作用

git remote add [remote_name] [url]

增加一个新的远程仓库,并命名。即:建立与远程仓库的关联。

例:git remote add origin [email protected]:xxx/Demo.git

git remote set-url [remote_name>][new_url]

修改远程仓库的url

git remote remove [remote_name]

删除与远程仓库的关联

查看远程仓库信息

命令 作用

git remote -v

查看关联的远程仓库的名称(默认为:origin)。

-v选项可以显示url

git remote show [remote_name]

显示某个远程仓库的信息

提交到远程不用输入账户密码的方法

对于ssh(推荐使用)

ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

keyfile:对于Windows:C:\Users\xxx\.ssh\id_rsa   对于Linux:~/.ssh/id_rsa

例如:

ssh-keygen -p -P test1234 -N '' -f "C:\Users\xxx\.ssh\id_rsa"

对于https

1.保存认证

git config --global credential.helper store

 此时查看.gitconfig文件(Windows路径:C:\Users\xxx\.config;Linux路径:~/.config)多了两行:

[credential]
	helper = store

2.再次pull

例如:

git pull origin master

        此时.git-credentials(Windows路径:C:\Users\xxx\.git-credentials;Linux路径:~/.git-credentials)中会多一行内容。里面的内容类似:

https://{username}:{password}@github.com

3.push

此时push不再需要密码(若提示输入,直接跳过即可)

猜你喜欢

转载自blog.csdn.net/feiying0canglang/article/details/126398223