一、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