推送到远程仓库等步骤
发布时间:2025-06-24 17:36:23 作者:北方职教升学中心 阅读量:752
#
:注释行以 #
开头,Git 会忽略注释行。无论是个人项目还是团队开发,Git 都能提供强大的功能来跟踪、输出示例如下:origin https://github.com/example/repo.git (fetch)origin https://github.com/example/repo.git (push)
8.2 拉取远程仓库的更新
命令:
gitpull
示例命令:
gitpull origin master
效果:
- 从远程仓库的
master
分支拉取最新的更改并自动合并到本地当前分支。
10. Git 性能优化与高级技巧
10.1 使用 Git LFS (Large File Storage)
Git LFS 用于管理大型文件(如二进制文件、
7.5.3 撤销整个提交
命令:
gitreset --hard<commit_hash>
示例命令:
gitreset --hardabcdef1234567890abcdef1234567890abcdef12
效果:
- 重置当前分支到指定的提交
abcdef1234567890abcdef1234567890abcdef12
,并且丢弃所有当前工作目录中的更改。.tmp
文件以及node_modules/
和dist/
目录下的文件都会被 Git 忽略。- Fork:在 GitHub 上 fork 仓库,创建该仓库的副本。它是用来查看文件改动的详细内容。
发布分支
命令:
gitflow release start <release_name>
示例命令:
gitflow release start 1.0.0
效果:
- 创建一个新的发布分支
1.0.0
,用于准备发布版本。如果你已经执行了git add
,此命令将取消暂存,但不会丢失文件中的更改。
解决冲突步骤:
打开冲突文件,手动解决冲突。
- 例如,添加以下内容以忽略某些常见文件和文件夹:
这样,所有*.log*.tmpnode_modules/dist/
.log
、命令:
gitadd.gitignoregitcommit -m"Add .gitignore to ignore unnecessary files"gitpush origin <branch_name>
示例命令:
gitadd.gitignoregitcommit -m"Add .gitignore to ignore node_modules"gitpush origin main
效果:
- 将
.gitignore
文件添加到暂存区,提交到版本控制中,并推送到远程仓库。启动 Bisect
命令:
gitbisect start
示例命令:
gitbisect start
效果:
- 启动 bisect 过程,Git 会要求你指定已知的“坏”提交和“好”提交。使用
-D
强制删除:gitbranch -Dfeature-xyz
删除远程分支
命令:
gitpush <remote_name>--delete<branch_name>
示例命令:
gitpush origin --deletefeature-xyz
效果:
- 删除远程仓库中的
feature-xyz
分支。
- 启动 bisect 过程,Git 会要求你指定已知的“坏”提交和“好”提交。使用
- 将
9.2 使用 Git 钩子 (Hooks)
Git 钩子是 Git 中的一个机制,允许在执行某些操作前或后运行自定义脚本。
6.2 Git Flow 工作流
Git Flow 是一种非常流行的 Git 工作流,适用于持续集成和团队合作的项目。
pre-commit
和 post-commit
。保存当前更改
命令:
gitstash
示例命令:
gitstash
效果:
- 保存当前工作区的修改,并将工作区恢复为最近一次提交时的状态。
执行 Rebase
命令:
gitrebase <base_branch>
示例命令:
gitrebase master
效果:
- 将当前分支的提交重新应用到
master
分支的最新提交上。 - 配置成功后,使用
git config --list
可以查看所有配置信息。操作系统生成的文件等不需要版本控制的内容。设置别名
命令:
gitconfig --globalalias.<alias_name><git_command>
示例命令:
gitconfig --globalalias.co checkout
效果:
- 为
git checkout
命令设置别名git co
,以后可以使用git co
来代替git checkout
。
切换分支
命令:
gitcheckout <branch_name>
示例命令:
gitcheckout feature-login
效果:
- 切换到
feature-login
分支,开始在该分支上进行开发。 - develop:用于开发的主分支,所有的开发和集成工作都发生在这里。
- 完成开发后,提交更改并推送到远程仓库。
删除分支
命令:
gitbranch -d<branch_name>
示例命令:
gitbranch -dfeature-xyz
效果:
- 删除分支
feature-xyz
,如果分支已经合并到当前分支,则可以成功删除。推送到远程仓库等步骤。它由 Linus Torvalds(Linux 操作系统的创建者)于 2005 年开发。别名设置等。通常会显示为both modified
,需要手动编辑冲突文件。例如,# Ignore logs
。如果没有冲突,Git 会自动合并修改并创建一次新的提交。设置钩子
命令:
cd.git/hooks
示例命令:
cd.git/hooks
效果:
- 进入
.git/hooks
目录,所有的钩子脚本都存放在该目录中。目录
- Git 完全指南:从入门到精通
- 1. Git 概述
- 1.1 什么是 Git
- 1.2 Git 与其他版本控制系统的区别
- 1.3 Git 的主要特点
- 2. Git 安装与配置
- 2.1 Git 安装
- Windows
- macOS
- Linux
- 2.2 Git 配置
- 3. Git 基础命令
- 3.1 克隆 Git 仓库
- 3.2 查看 Git 仓库状态
- 3.3 查看提交历史
- 3.4 创建、编译产物、它特别适合将第三方库或依赖项目引入到你的项目中。
- release:当开发周期结束时,创建一个发布分支进行最终调试。
安装 Git LFS
命令:
gitlfs install
示例命令:
gitlfs install
效果:
- 安装 Git LFS(Large File Storage),使其可以用于管理大型文件。Git 会通过二分查找来缩小范围,直到定位到引入 bug 的提交。管理代码变更,并保障项目的稳定性与可持续发展。
- 会提示输入分支名称等设置,通常选择默认设置即可。
命令:
gittag <tag_name>
示例命令:
gittag v1.0
效果:
- 为当前提交创建一个名为
v1.0
的标签。如果尚未合并,Git 会发出警告。开发者可以 fork 一个远程仓库,修改自己的分支,最后通过 Pull Request 将修改提交给原仓库的所有者进行合并。7.3.1 创建
.gitignore
文件命令:
echo"<pattern>">>.gitignore
示例命令:
echo"node_modules/">>.gitignore
效果:
- 这个命令将
node_modules/
目录添加到.gitignore
文件中,表示 Git 将忽略所有node_modules
目录下的文件。 - 分布式版本控制系统(如 Git):每个开发者的工作站都有完整的代码历史记录,可以脱离服务器工作,直到需要同步时才连接。
示例钩子:
pre-commit
命令:
echo"#!/bin/sh">.git/hooks/pre-commitecho"echo 'Running pre-commit hook...'">>.git/hooks/pre-commitchmod+x .git/hooks/pre-commit
效果:
- 创建一个
pre-commit
钩子,每次提交之前,都会运行这个脚本。输出示例:stash@{0}: WIP on master: 1234567Add feature Xstash@{1}: WIP on feature-xyz: abcdef0 Fix bug Y
恢复 Stash
命令:
gitstash apply <stash_index>
示例命令:
gitstash apply stash@{0}
效果:
- 恢复指定的暂存更改,将其应用到当前分支。修改和删除的文件)。
7.3 Git 忽略文件
在 Git 中,
.gitignore
文件用于指定 Git 不需要跟踪的文件或目录。 - 这个命令将
- 终端输出:
commit 1234567890abcdef1234567890abcdef12345678Author: John Doe <johndoe@example.com>Date: Tue Oct 2818:32:01 2024+0800 Fixed the bug inindex.htmlcommit 0987654321abcdef0987654321abcdef09876543Author: Jane Smith <janesmith@example.com>Date: Mon Oct 2712:15:45 2024+0800 Added new feature to main.js
3.4 创建、
- 为当前提交创建一个名为
命令:
gitrebase <branch_name>
示例命令:
gitrebase master
效果:
- 将当前分支的更改应用到
master
分支的顶部,从而产生一个线性的提交历史。 - 支持分支和合并:Git 提供强大的分支管理和合并功能,便于团队协作。Git 会显示每次提交的哈希值、如果没有冲突,Git 会自动合并并创建一个新的提交。
7.3.3 忽略已跟踪的文件
如果某个文件已经被 Git 跟踪,但之后你希望忽略它,可以通过修改
.gitignore
文件来实现。 - 终端输出:
remote: Enumerating objects: 20, done.remote: Counting objects: 100% (20/20), done.remote: Compressing objects: 100% (14/14), done.From https://github.com/example/repo * branch master ->FETCH_HEAD Updating abcdef1..1234567Fast-forward file1 |2+- 1filechanged, 1insertion(+), 1deletion(-)
8.3 推送本地更改到远程仓库
命令:
gitpush <remote_name><branch_name>
示例命令:
gitpush origin master
效果:
将本地
master
分支的提交推送到远程仓库。- 否定符
!
:在忽略规则中,使用!
来指定不忽略某个文件或目录。
7.4 查看提交历史
命令:
gitlog
示例命令:
gitlog
效果:
显示当前分支的提交历史,包括每个提交的哈希值、
2. Git 安装与配置
2.1 Git 安装
Git 支持多种操作系统,包括 Windows、
7. Git 高级命令与技巧
7.1 Rebase 与 Merge
git merge
和git rebase
都用于合并分支,但它们的工作方式不同。提交日期和提交信息。
查看 Stash 列表
命令:
gitstash list
示例命令:
gitstash list
效果:
- 显示所有的暂存更改(stash)列表。
!important.log
保留important.log
文件,即使它符合.log
模式。macOS 和 Linux。例如,*.log
会忽略所有.log
文件。- 分布式架构:每个开发者的机器上都有完整的代码库副本,不依赖于中央服务器。
- 功能分支:通常用于开发新功能。提交时间和提交信息。
- Merge:合并分支时,会产生一个合并提交,保留合并历史。
- 执行
git status
会看到该文件或目录从暂存区移除的提示:$ gitstatusChanges to be committed: (use "git restore --staged <file>..."to unstage)deleted: node_modules/
注意事项:
- 使用
--cached
参数仅会从 Git 的索引中删除文件,文件本身会保留在本地工作区。
10.2 Git 分支管理高级技巧
删除本地分支
命令:
gitbranch -d<branch_name>
示例命令:
gitbranch -dfeature-xyz
效果:
- 删除本地分支
feature-xyz
,如果该分支未完全合并到当前分支,Git 会阻止删除。4. Git 提交与变更管理
4.1 提交文件变更
命令:
gitcommit -m"<commit_message>"
示例命令:
gitcommit -m"Fix bug in header component"
效果:
- 将已暂存的更改提交到本地 Git 仓库,并附带一条提交信息。
- 在 Debian/Ubuntu 系统上,可以使用以下命令安装:
sudoaptupdatesudoaptinstallgit
- 在 Red Hat/Fedora 系统上:
sudoyum installgit
Linux
2.2 Git 配置
Git 安装完成后,第一次使用时需要进行一些基本配置,主要包括设置用户名和邮箱。
- 修改与提交:在本地修改代码并提交。
标记提交为好或坏
命令:
gitbisect good <commit_hash>gitbisect bad <commit_hash>
示例命令:
gitbisect good abcdef1234567890gitbisect bad 1234567890abcdef
效果:
- 标记提交为好(不包含 bug)或坏(包含 bug)。
解决冲突
命令:
gitstatus
示例命令:
gitstatus
效果:
- 查看当前分支的状态,Git 会提示哪些文件存在冲突。
- 目录模式
/*
:匹配目录中的所有文件。合并时,如果两个分支修改了相同的部分,Git 会提示冲突,并要求开发者手动解决。
创建新特性分支
命令:
gitflow feature start <feature_name>
示例命令:
gitflow feature start feature-xyz
效果:
- 使用 Git Flow 创建一个新的特性分支
feature-xyz
,用于开发新功能。 - 在本地创建新的分支进行开发。
解决冲突
如果合并时发生冲突,Git 会标记出冲突文件,开发者需要手动编辑冲突部分,解决后再执行提交。
命令:
gitconfig --globaluser.name "<username>"gitconfig --globaluser.email "<email>"
示例命令:
gitconfig --globaluser.name "John Doe"gitconfig --globaluser.email "johndoe@example.com"
效果:
- 这些配置将用于你所有的 Git 提交,确保每次提交时正确记录提交者信息。
10.3 Git 合并与冲突解决
合并分支
命令:
gitmerge <branch_name>
示例命令:
gitmerge feature-xyz
效果:
- 将
feature-xyz
分支的修改合并到当前分支。安装 Git Flow
命令:
gitflow init
示例命令:
gitflow init
效果:
- 启动 Git Flow 工作流程初始化,设置默认的分支策略。
11.2 Git Flow 工作流程
Git Flow 是一种常见的 Git 工作流程,它定义了多个分支类型和对应的管理策略,旨在简化团队协作。
- 运行命令后,执行
cat .gitignore
可以看到文件内容:$ cat.gitignorenode_modules/
注意事项:
.gitignore
是一个文本文件,你可以手动编辑该文件来添加其他需要忽略的文件或目录模式。视频文件等),它将这些大文件存储在 Git 外部的专用服务中,从而避免仓库变得过于庞大。需要先将该文件从 Git 的索引中移除,然后才能正确忽略。
删除分支
命令:
gitbranch -d<branch_name>
示例命令:
gitbranch -dfeature-login
效果:
- 删除
feature-login
分支。再次感谢大家的关注和支持!点我关注❤️
- 进入
- 为
- 将当前分支的提交重新应用到