Git-本地项目同步到远程仓库

一、Git初始化项目

shell 复制代码
git init

git init 是 Git 中用于初始化一个新仓库的命令,通常用来在现有目录中创建一个 Git 仓库或重新初始化一个现有的 Git 仓库。通过 git init,你可以将一个普通的目录转变为 Git 受控的项目目录。

在当前目录中初始化一个新的 Git 仓库。这会创建一个 .git 目录,用来存储 Git 所需的所有元数据和对象。

效果:执行后,目录将变成一个 Git 仓库,你可以在其中执行所有 Git 命令,如 git add、git commit 等。

二、Git add 操作

shell 复制代码
git add

1. 基本用法

1.1 git add

将指定的文件添加到暂存区。这个命令告诉 Git 跟踪该文件的修改。

shell 复制代码
git add filename.txt

此命令会将 filename.txt 添加到暂存区,它的修改将在下一次 git commit 时被提交。

1.2 git add

将指定目录中的所有文件递归地添加到暂存区。

shell 复制代码
git add my_folder/

此命令会将 my_folder 目录及其子目录下的所有文件添加到暂存区

1.3 git add .

将当前目录下的所有文件添加到暂存区(包括子目录中的文件)。这个命令会将所有已修改、已删除和新建的文件添加到暂存区。

shell 复制代码
git add .

1.4 git add -A

将工作区中所有已修改、已删除和新建的文件添加到暂存区,作用与 git add . 类似,但更加明确地处理已删除的文件。

shellgit 复制代码
 add -A

2. 常用选项

2.1 git add -p

交互式添加文件的部分修改。你可以选择性地将文件的某些部分(hunk)添加到暂存区,而不是整个文件。

shell 复制代码
git add -p
  • 用法: Git 会显示每个文件的修改,并允许你选择 y(添加)或 n(跳过)该部分的修改。
  • 应用场景: 如果你对文件做了多个不同的修改,而只想提交其中的一部分,可以使用这个命令。

2.2 git add -i

进入交互式界面,允许你选择要添加的文件。这提供了一种更灵活的方式来选择哪些文件或部分文件需要添加到暂存区。

shell 复制代码
git add -i

步骤:

1、Git 会打开一个交互式界面,你可以选择要添加的文件或文件块

2、可选择添加文件、修补文件、取消添加文件等

2.3 git add -u

只添加已被修改或被删除的文件到暂存区,不会添加新文件。

shell 复制代码
git add -u

应用场景:如果你只想添加已修改或已删除的文件,而不想添加新创建的文件,可以使用此选项。

三、Git commit

git commit 是 Git 的核心命令之一,用于将暂存区(staging area)中的更改记录到版本历史中 。每次提交都会创建一个新的提交对象(commit),其中包含提交的更改、提交说明、作者信息和时间戳。通过 git commit,你可以构建项目的历史,记录每次变更。

1. 基本用法

shell 复制代码
git commit -m "commit message"

2. 常用选项详解

2.1 git commit -a

自动提交所有已修改和删除的文件到暂存区,并创建一次提交。但不会包括未被 git add 追踪的新文件。

shell 复制代码
git commit -a -m "Commit all tracked changes"
  • -a: 自动将所有已修改、已删除的文件添加到暂存区,适合快速提交修改,但不包括新文件

2.2 git commit --amend

修改最后一次提交的内容或提交信息。如果你在最近一次提交后发现信息有误,或想要添加遗漏的文件,可以使用这个选项。

shell 复制代码
git commit --amend -m "Updated commit message"
  • 用法 :修改上一次提交的内容和提交说明
  • 应用场景:修正拼写错误、遗漏文件或不想再创建一个新的提交时使用
  • 注意:如果已经将该提交推送到远程仓库,不建议随意使用 --amend,以免引发历史冲突

2.3 git commit --verbose (or -v)

显示提交时的差异信息(即文件的更改),方便检查提交内容。

shell 复制代码
git commit -v
  • 应用场景:想在提交时预览或检查文件的修改内容

2.4 git commit --no-edit

使用 --amend 选项时,保留上一次提交信息,不再要求编辑提交信息。

shell 复制代码
git commit --amend --no-edit
  • 应用场景 :当只想修改提交内容 ,而不想修改提交说明

四、Git remote

git remote 命令用于管理 Git 仓库与远程仓库的连接。通过 git remote,可以查看、添加、修改和删除本地仓库与远程仓库的关联

1.查看远程仓库

1.1 git remote

查看当前本地仓库中配置的远程仓库名称列表。

shell 复制代码
git remote

1.2 git remote -v

查看远程仓库的详细信息,包括其对应的 URL 以及是否用于 fetch(获取)或 push(推送)。

shell 复制代码
git remote -v

输出类似如下内容:

perl 复制代码
origin  https://github.com/username/repo.git (fetch)
origin  https://github.com/username/repo.git (push)

2. 添加远程仓库

2.1 git remote add

将远程仓库添加到本地仓库中。 是远程仓库的别名(如 origin), 是远程仓库的地址(如 GitHub 上的仓库地址)

shell 复制代码
git remote add origin https://github.com/username/repo.git
  • 应用场景: 本地创建的仓库需要关联到一个远程仓库,或你有多个远程仓库需要管理。

3. 修改远程仓库

3.1 git remote set-url

更改现有远程仓库的 URL。适用于远程仓库的地址变更,如切换到新的 Git 服务平台,或更改远程仓库的协议(从 https 改为 ssh 等)

shell 复制代码
git remote set-url origin git@github.com:username/repo.git
  • 应用场景: 例如,原来的远程仓库地址使用 HTTPS,但想要切换到 SSH URL。

3.2 修改 fetch 或 push URL

如果只想修改 fetch 或 push 的 URL,可以通过如下命令:

shell 复制代码
git remote set-url --push origin git@github.com:username/repo.git

五、Git push

git push 是 Git 中用于将本地仓库中的提交推送到远程仓库的命令。它将本地分支的最新更改上传到远程仓库,从而让其他开发人员能够获取这些更改。

1. 基本用法

shell 复制代码
git push <remote> <branch>
  • <remote>远程仓库的名称,如 origin。
  • <branch> :你要推送的本地分支的名称,如 main、develop 等。

示例:

shell 复制代码
git push origin main

该命令会将本地的 main 分支推送到远程仓库 origin 上的 main 分支

2. 常用选项

2.1 git push --set-upstream

这个命令用于将本地分支与远程分支关联起来。之后,在该分支上推送时,可以直接使用 git push 而不需要再指定远程仓库和分支。

shell 复制代码
git push --set-upstream origin main
  • 应用场景:当创建了一个新分支并想推送到远程仓库时,首次需要指定 remote 和 branch,以后就不再需要手动输入了。

2.2. 推送到新远程分支

如果本地分支不存在于远程仓库中,可以通过以下命令推送该分支并在远程创建相应的分支:

shell 复制代码
git push origin <local-branch>:<remote-branch>

示例:

shell 复制代码
git push origin feature/new-feature:feature/new-feature

该命令会将本地的 feature/new-feature 分支推送到远程仓库,并在远程创建 feature/new-feature 分支。

如果不指定远程分支名,则默认会创建与本地分支同名的远程分支:

shell 复制代码
git push origin feature/new-feature
相关推荐
yylの博客2 小时前
Windows通过git-bash安装zsh
windows·git·bash·zsh
丁总学Java2 小时前
(Z Shell)zsh: no matches found: ? 使用单引号包裹
git·zsh
萌狼蓝天3 小时前
【NAS】绿联NAS+极狐Gitlab+1Panel
git
deja vu水中芭蕾8 小时前
git push origin HEAD:refs/for/分支名
git
海岛日记12 小时前
git常用操作
git
喝鸡汤12 小时前
一起学Git【番外篇:如何在Git中新建文件】
git
“αβ”12 小时前
Windows下使用git配置gitee远程仓库
git
谢家小布柔17 小时前
Git图形界面以及idea中集合Git使用
java·git
winner888118 小时前
git merge 冲突 解决 show case
java·git·git merge·git冲突
玩电脑的辣条哥1 天前
怎么给git动图扣除背景?
git·抠图