git提交

本文详细介绍了如何通过两种方式在本地新建项目并与GitHub远程仓库进行交互,包括新建仓库、分支、暂存与提交,以及解决克隆与同步时的冲突问题,特别提到gitpull和gitfetch+merge/rebase的区别和使用场景。

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

第一种方式-本地新建

新建一个文件夹用来存放项目文件,如project_1

1.新建本地仓库,新建完成后会生成一个.git文件

git init

c7b697efd3bb4f1ebf6f707bdcc0cbb9.png

新建分支,如test1

git checkout -b test

d5a23ca7adfb4c438c67260ce65e78f3.png

暂存,添加文件提交到暂存区

git add .

提交,将代码提交到本地仓库

git commit -m 备注信息

c285b82c71cd41238242e51346054a09.png

连接远程仓库

git remote add origin 仓库地址 

0757e9d6db8a49a583d016d4bfa50183.png

提交到远程仓库。test1为新建的分支名称

git push --set-upstream origin test1

报错分析:

git config --global http.sslVerify false

6597faaaddee4b1dbb26f861d825fde1.png

补充:

git push只可以使用--set-upstream,等价与使用 -u

用法:git push -u origin mybranch1

作用:

1.推送本地分支mybranch1到远程主机origin的mybranch1分支

2.追踪远程分支,远程没有mybranch1就自动创建一个

3.设置origin为默认主机

4f21fe415c634f5e87f0dfa3e9cce532.png

github查看提交的代码

80e863b108fe4feeb48acd586ade2a1f.png

在第6步,若要新建和远程仓库相同的分支,如main,在提交git push的时候会报错,因为需要先拉取在合并,就是将远程仓库里的最新代码拉到本地来,再将本地的推过去

9875bd15dc484be493692d0a95761446.png

查找资料:

(1)先把git的东西fetch到你本地然后merge后再push,master为远程仓库主分支,现在为main

$ git fetch origin master

$ git merge origin FETCH_HEAD 

先抓取远程仓库的更新到本地,然后与你的本地仓库合并,(如果有冲突就要解决冲突后再合并,冲突问题比较复杂,这里就不详细说了),这样就可以使远程仓库和你本地仓库一致了,然后就可以提交修改了。

(2)这2句命令等价于

$ git pull origin master

但是使用git fetch + git merge 更加安全。

(3)git pull --rebase origin master

重定基,可以是历史更加统一,即使提交历史趋向于一条直线。

补充:他们之间的关系

git pull = git fetch + git merge FETCH_HEAD 

git pull --rebase = git fetch + git rebase FETCH_HEAD

具体解决如下:

git pull origin main --allow-unrelated-histories

aaf9a6d70434415196ad7f5d99f89c80.png

直接用git pull origin main会报错,

3632cadc57d94147915e3054636737ec.png

原因分析:

可能是这两个仓库内容是完全不一样的,他们之间没有关联。因为我本地仓库存放A,远程存放B,我想把B拉过来,本地存放A+B,但是执行pull命令是要完全覆盖本地,本地直接变成B了,这样就产生了冲突。

而平时的情况是本地存A,在远程修改后变成A+1,想要让本地也同步远程更新,就执行pull命令,用远程的A+1覆盖了本地的A。

解决方案:git pull origin main --allow-unrelated-histories

在git pull 命令后,加上--allow-unrelated-histories ,这样就让两个没关联的内容同时存在了,本地就成功的存放了A+B。

注意,这时候想要将合并成功的本地仓库推入远程仓库,因为本地仓库更新了,所以要先提交,然后再执行push命令

第二种方式--克隆

git clone https://github.com/xuweiqi1461/test.git

63773d71c4644defb27ec78f1ce49407.png

其他步骤与第一种方式相同

 

### Git 提交命令的用法 `git commit` 是 Git 中用于提交更改的核心命令,它将暂存区(staging area)中的更改记录到版本历史中,并生成一个唯一的提交 ID。以下是 `git commit` 命令的一些常见用法及其功能: #### 1. 基本提交 执行以下命令时,Git 会打开默认的文本编辑器,要求用户输入提交信息[^3]。 ```bash git commit ``` #### 2. 提交时直接添加提交信息 通过 `-m` 参数可以直接在命令行中指定提交信息,而无需打开文本编辑器[^1]。 ```bash git commit -m "提交信息" ``` #### 3. 同时添加和提交 如果需要将所有已跟踪文件的更改直接提交,可以使用 `-am` 参数。这相当于先运行 `git add .` 再运行 `git commit -m`[^4]。 ```bash git commit -am "提交信息" ``` #### 4. 修改最近一次提交 如果需要修改最近一次提交的内容或提交信息,可以使用 `--amend` 参数。这会将当前暂存区的更改合并到上一次提交中[^1]。 ```bash git commit --amend ``` 如果需要同时修改提交信息,可以在命令中添加 `-m` 参数: ```bash git commit --amend -m "新的提交信息" ``` #### 5. 多行提交信息 可以通过 `-m` 参数多次使用来创建多行提交信息。每一行都会被视作单独的一段[^2]。 ```bash git commit -m "标题" -m "详细描述第一行" -m "详细描述第二行" ``` #### 6. 设置提交作者信息 如果需要为某次提交指定不同的作者信息,可以使用 `--author` 参数[^4]。 ```bash git commit --author="作者名 <author.email@example.com>" -m "提交信息" ``` #### 7. 添加签名 为了增强安全性,可以在提交时添加 GPG 签名[^4]。 ```bash git commit -S -m "提交信息" ``` #### 8. 查看提交内容 使用 `git log` 可以查看提交的历史记录,包括每次提交的详细信息[^2]。 ```bash git log ``` #### 9. 修改任意提交的信息 如果需要修改之前的某次提交信息,可以结合 `git rebase` 使用交互模式。例如,假设需要修改倒数第三次提交的信息,可以运行以下命令并选择 `edit` 模式[^2]。 ```bash git rebase -i HEAD~3 ``` --- ### 示例代码 以下是一个完整的示例,展示如何进行一次带签名的提交,并设置不同的作者信息: ```bash # 添加文件到暂存区 git add . # 提交更改,设置作者信息并添加签名 git commit --author="John Doe <john.doe@example.com>" -S -m "优化了性能问题" # 推送到远程仓库 git push ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值