git pull / git push 记住密码方法(ssh记住密码)

本文介绍了如何在Linux/MacOS环境下配置SSH密钥和使用OSX Keychain,以实现Git操作时无需输入密码。通过执行一系列步骤,包括创建SSH密钥、将密钥上传到远程服务器、测试连接以及设置Git全局配置,可以确保在执行git pull或git push操作时不需再次输入密码。此外,文章还提供了在更换主机IP地址时解决SSH提示的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

备注: 适用于Linux/Mac OS等。

有没有觉得,每次git pull 或git push的时候,都需要重新输入密码,很麻烦。搜了下找到一种方法记住ssh连接的密码,同时把Git repository的密码保存下来,下面就来一步一步做吧。。

1. 首先是保存密码输入问题,需要创建密钥,在你的命令行输入:

local:~ yourname$  ssh-keygen -t rsa

然后依次回车,输入密码,这个密码和SSH的帐号密码无关。

 

Generating public/private rsa key pair.
Enter file in which to save the key (/u/kim/.ssh/id_rsa): 【回车】
Enter passphrase (empty for no passphrase): 【第一次密码】
Enter same passphrase again: 【第二次密码】
Your identification has been saved in /u/kim/.ssh/id_rsa.
Your public key has been saved in /u/kim/.ssh/id_rsa.pub.

2. 接下来把密钥文件内容上传到的SSH帐号下:

local:~ yourname$ cat ~/.ssh/id_rsa.pub  | ssh username@yourhost ‘cat >> .ssh/authorized_keys’

3. 最后一步测试

local:~ yourname$ ssh username@yourhost.com

如果此时不需要你输入密码,那么恭喜你设置成功了。现在你再执行git pull 或git push就不需要输入密码了。

参考:Store your git https passwords in your OS X Keychain

 

ps: 如果更换主机ip地址等,会出现ssh的一个提示,去除这个提示,请使用:

ssh-keygen -f  ~/.ssh/known_hosts -R NewIP

 

 

对于另外一种每次需要输入用户和密码git账户,比如github。用以下方法

若想让 Git 使用 osxkeychain,可以在 Git 的全局设置中进行设置:

<code>$ git config --global credential.helper osxkeychain
# Set git to use the osxkeychain credential helper
</code>

经过这样的设置之后,下次再克隆 HTTPS 地址时会询问你的用户名和密码,并授权给 OSX keychain。完成这些之后你的用户名和密码就会存储到 keychain 中,再也不会在 Git 中询问了。

<think>好的,用户现在问的是git pushgit pullgit remote如何配合使用。之前他们已经了解了git remote的作用,现在需要进一步解释这三个命令如何协同工作。 首先,我需要确定用户的需求。他们可能已经知道每个命令的基本用法,但想了解这些命令如何在实际工作流中一起使用。比如,如何配置远程仓库,然后进行推送或拉取。 接下来,我需要回顾之前回答的结构,确保一致性。之前的回答详细列举了git remote的不同用法,并给出了应用场景。现在需要将git pushgit pull整合进去,说明它们如何依赖远程仓库的配置。 用户可能的疑问点在于:为什么需要配置remote才能使用pushpull?不同远程仓库名称如何影响这些命令?例如,origin和upstream的区别。此外,他们可能想知道如何同推送到多个远程仓库,或者如何处理权限问题。 我需要分步骤解释:首先配置remote,然后使用pushpull指定远程名称和分支。需要强调默认情况下,如果不指定远程,git会使用origin。还要提到如何设置上游分支,简化命令。 应用场景部分,可以举协作开发和开源项目维护的例子,说明如何使用不同的remote名称进行同步和协作。注意事项中要提到权限、上游分支设置和多远程仓库的管理。 最后,总结这三个命令如何形成一个工作流,帮助用户高效管理代码。需要保持语言清晰,结构分明,使用示例代码和表格来增强可读性。</think>### `git push`、`git pull` 与 `git remote` 的协同工作流程 `git push` 和 `git pull` 是与远程仓库交互的核心命令,而 `git remote` 负责管理本地仓库与远程仓库的关联关系。它们的配合使用形成了 Git 多人协作的基础。以下是具体协作逻辑和典型场景: --- #### **1. 核心关系** - **`git remote`**:定义远程仓库的名称(如 `origin`)和 URL,建立本地与远程的映射。 - **`git push`**:将本地代码推送到远程仓库。 - **`git pull`**:从远程仓库拉取最新代码并合并到本地。 三者关系可简化为: **`git remote` 配置连接 → `git pull` 同步代码 → `git push` 提交代码** --- #### **2. 基础协作流程** ##### **步骤 1:关联远程仓库(`git remote`)** - 克隆仓库自动关联远程: ```bash git clone https://github.com/user/repo.git # 默认远程仓库名为 origin ``` - 手动添加远程仓库: ```bash git remote add upstream https://github.com/other/repo.git # 添加第二个远程仓库 ``` ##### **步骤 2:拉取代码(`git pull`)** - 从默认远程仓库(`origin`)拉取代码: ```bash git pull origin main # 拉取 origin 的 main 分支并合并到本地 ``` - 从其他远程仓库(如 `upstream`)同步代码: ```bash git pull upstream main # 同步开源项目的主仓库更新 ``` ##### **步骤 3:推送代码(`git push`)** - 推送到默认远程仓库: ```bash git push origin main # 将本地 main 分支推送到 origin ``` - 推送到其他远程仓库: ```bash git push backup main # 推送到名为 backup 的远程仓库 ``` --- #### **3. 典型场景示例** ##### **场景 1:日常开发协作** 1. **配置远程仓库**: ```bash git remote add origin https://github.com/your-username/project.git ``` 2. **拉取最新代码**: ```bash git pull origin main # 同步团队最新代码 ``` 3. **提交并推送修改**: ```bash git add . git commit -m "feat: 添加新功能" git push origin main # 推送代码到自己的远程仓库 ``` ##### **场景 2:参与开源项目(多远程仓库)** 1. **关联原始仓库(`upstream`)和自己的仓库(`origin`)**: ```bash git remote add upstream https://github.com/opensource/project.git git remote add origin https://github.com/your-username/project.git ``` 2. **同步原作者代码**: ```bash git pull upstream main # 拉取原始仓库更新 ``` 3. **推送自己的修改**: ```bash git push origin main # 推送到自己的仓库 ``` ##### **场景 3:推送到多个远程仓库** ```bash # 添加两个远程仓库 git remote add github https://github.com/user/repo.git git remote add gitee https://gitee.com/user/repo.git # 同推送到 GitHub 和 Gitee git push github main git push gitee main ``` --- #### **4. 关键参数与简化操作** ##### **设置上游分支(简化 `git push/pull`)** - **绑定本地分支与远程分支**: ```bash git push -u origin main # -u 参数设置上游分支 ``` - **后续操作无需指定远程和分支**: ```bash git pull # 自动从 origin/main 拉取 git push # 自动推送到 origin/main ``` ##### **强制推送(谨慎使用)** ```bash git push --force origin main # 覆盖远程分支(可能破坏协作历史) ``` --- #### **5. 注意事项** | 问题类型 | 解决方案 | |----------------|--------------------------------------------------------------------------| | **权限错误** | 检查远程 URL 协议(HTTPS/SSH),确认密钥或账号权限 | | **冲突处理** | 先 `git pull` 解决冲突,再 `git push` | | **分支对应** | 确保 `git push/pull` 本地分支与远程分支名称匹配(或通过 `-u` 设置关联) | | **多远程仓库** | 明确不同远程仓库用途(如 `origin` 为自己仓库,`upstream` 为原始仓库) | --- ### **总结** - **`git remote`**:定义远程仓库的入口(名称和 URL)。 - **`git pull`**:从已配置的远程仓库拉取代码(`fetch + merge`)。 - **`git push`**:向已配置的远程仓库推送代码。 **协作本质**:通过 `git remote` 建立连接,用 `pull` 保持代码同步,用 `push` 共享修改,三者共同实现分布式版本控制的高效协作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值