Git提交项目到远程仓库的两种方式

本文详细介绍了如何使用Git将项目从本地仓库推送到远程仓库的过程,包括新建仓库的首次推送及已有仓库的更新推送,涵盖了从初始化仓库、添加暂存区、本地提交到远程推送的完整流程。

在前面已经总结了将项目传入到暂存区和本地仓库,下面就来看一下如何将项目传输到远程仓库。
提交有两种情景:
1:将一个新建的仓库传输到远程仓库中。
2:项目在远程仓库中已经存在,只做局部更新。
在这里插入图片描述
在这里我创建了一个新的项目GitTest,在创建完之后,就会出现提示信息:

or create a new repository on the command line
or push an existing repository from the command line

上面的两种情况也是开头列出来的两种提交项目的情景。下面就分别来看一下

一:项目提交到新的远程仓库中

1:在项目中初始化git仓库(index文件原本就存在于项目中) git init
在这里插入图片描述
2:将文件添加到缓存区(暂存区) git add
在这里插入图片描述
分析:
1):使用git status 查看当前项目中文件的状态。
2):使用git add 将文件纳入暂存区。
3):使用git status 查看当前项目中文件的状态

3:将文件传入到本地仓库 git commit
在这里插入图片描述
分析:
1):使用git commit -m "注释"将文件提交到本地仓库。我的个人理解是,提交到本地仓库这一环节是必不可少的,因为git这种分布式管理的优点就是当远程服务器的数据丢失时,他可以将本地仓库的数据拿过来使用,将损失降到最低,(本地仓库存储的就是这个远程仓库中的所有的数据)。
2):使用 git status查看当前的文件状态,发现工作目录很干净,没有要提交的东西,这是将目前的文件和本地仓库做的对比。

4:上传项目到远程仓库
在这里插入图片描述
在这里插入图片描述
分析:
1):使用git remote add origin https地址确定要传输的远程仓库的地址;
2):使用git push -u origin master将项目推到远程仓库中
问题:此时出现安全证书的问题,
在这里插入图片描述
在使用了config用户信息之后还是不能成功的推送
在这里插入图片描述

git config --global http.sslVerify false

此时就可以成功推送了。不会出现安全证书的问题。

二:项目提交到已经存在的非空远程仓库中

1:改动项目,并查看当前项目工作目录的状态
在这里插入图片描述
2:加入暂存区
在这里插入图片描述
3:进行提交到本地库 commit
在这里插入图片描述
4:提交到远程仓库push
在这里插入图片描述
因为前边已经存在这个origin地址了,已经操作过了,所以可以直接push到远程仓库。

最后的总结:
1:使用add添加到暂存区域
2:使用commit添加到本地仓库
3:使用push推送到远程仓库。

<think>我们正在讨论如何撤回已经推送到远程仓库Git提交。根据引用内容,有几种方法可以实现:1.使用`gitrevert`创建反向提交(安全,不改变历史)2.使用`gitreset`回退本地提交,然后强制推送(改变历史,需谨慎)3.使用`gitreflog`找到提交记录进行操作用户问题:我想撤回已提交远程仓库Git提交步骤:方法一:使用gitrevert(推荐,不会改变历史)1.找到要撤销的提交的哈希值(使用`gitlog`)2.执行`gitrevert<commit-hash>`,这会创建一个新的提交来撤销之前的更改3.将新提交推送到远程:`gitpushorigin<branch-name>`方法二:使用gitreset(会改变历史,适用于未与他人共享的情况)1.回退到指定提交:`gitreset--hard<commit-hash>`(例如:回退到上一个提交`HEAD~1`)2.强制推送到远程:`gitpushorigin<branch-name>--force`注意:强制推送可能会覆盖其他人的工作,只有在确定没有其他人基于该提交工作时才使用。方法三:使用gitreflog(用于找回误操作前的状态)如果误操作了reset,可以使用`gitreflog`查看操作历史,然后使用`gitreset--hard<commit-hash>`恢复到某个状态。根据引用[1][2][4]的内容,强制推送需要谨慎,因为会覆盖远程仓库。而revert是更安全的方式,因为它不会改变历史,只是增加一个新的提交。因此,推荐用户使用`gitrevert`,除非明确需要修改历史。相关问题:1.如何撤销`gitrevert`操作?2.强制推送后如何恢复丢失的提交?3.如何避免在Git中需要强制推送的情况?</think>### 如何撤回已推送到远程仓库Git 提交 撤回已推送的提交主要有两种安全方法,根据是否允许修改历史记录选择: #### ✅ 方法一:创建反向提交(推荐,不修改历史) ```bash # 1. 查看提交记录获取哈希值 git log --oneline # 2. 创建反向提交(撤销指定提交的修改) git revert <commit-hash> # 例:git revert a1b2c3d # 3. 推送撤销提交远程 git push origin <branch-name> ``` **特点**: - 新增提交记录,不会修改历史 - 安全适用于协作项目[^2] - 撤销记录清晰可追溯 #### ⚠️ 方法二:重置本地提交(会修改历史) ```bash # 1. 重置到目标提交(HEAD~1表示前一次提交git reset --hard <commit-hash> # 或 git reset --hard HEAD~1 # 2. 强制推送到远程(覆盖历史) git push origin <branch-name> --force ``` **注意**: - 会永久删除提交记录 - 强制推送前需解除分支保护[^5] - 仅限私有分支使用,否则会破坏他人工作[^1][^4] #### 🔧 补救措施 如果误操作,可通过 reflog 恢复: ```bash git reflog # 查看操作历史 git reset --hard <丢失的提交哈希> # 恢复提交[^1] ``` > **最佳实践**:协作项目始终用 `git revert`,私有分支才用 `git reset --force`。撤回后建议通知团队成员同步变更[^2]。 --- ### 相关问题 1. 如何撤销 `git revert` 操作? 2. 强制推送导致代码丢失如何恢复? 3. Git 分支保护机制如何配置? 4. `git reset --soft` 和 `git reset --hard` 有何区别? 5. 如何批量撤回多个已推送的提交? [^1]: 强制推送更改:将重置后的本地分支强制推送到远程仓库。注意,强制推送可能会覆盖远程仓库中的其他更改,因此需要谨慎使用。 [^2]: 通过这种方式,你可以安全地撤回已经推送到远程仓库提交,而不会影响到项目的历史记录。如果操作得当,并且确实没有其他人在你之后提交,那么其他人不需要进行任何额外的提交。 [^4]: 如果你想要完全删除最新的提交(谨慎操作,因为这会改变历史)。 [^5]: 如果推送被拒绝,则需要在远程仓库取消该主分支的保护。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值