## 面向网页开发初学者的 GIT 基础👶 ## 什么是 `Git`? 1. Git 是一种分布式版本控制系统。 2. 整个代码库和历史记录都存储在每个开发者的电脑上,这使得分支和合并变得非常容易。 3. 它被用作版本控制系统 (VCS),用于跟踪计算机文件的更改。 * 分布式版本控制 * 协调多个开发者之间的工作 * 记录谁在什么时候做了哪些更改 * 随时回滚到之前的版本 * 本地和远程仓库 ## GIT 的概念 * 跟踪代码历史 * 对文件进行“快照” * 你可以通过“提交”来决定何时拍摄快照 * 你可以随时访问任何快照 * 提交之前可以暂存文件 ### Git 和 GitHub 的区别 | Git | GitHub | | ------- | ----------- | | Git 是一个软件 | GitHub 是一个云服务 | | Git 安装在本地系统上 | GitHub 托管在网络上 | | 它是一个命令行工具 | 它是一个图形用户界面 | | Git 由 Linux 维护 | GitHub 由微软维护 | | 它专注于版本控制和代码共享 | 它专注于集中式源码托管 | | Git 是开源许可的 | GitHub 提供免费和付费服务 | | Git 于 2005 年发布 | GitHub 于 2008 年发布 | ## GIT 安装 * Linux(Debian) `$sudo apt-get install git` * Linux(Fedora) `$sudo yum install git` * [下载](http://git-scm.com/download/mac) Mac 版本 * [下载](http://git-scm.com/download/win) Windows 版本 ### 安装步骤: 1. 2. 3. 4. 5. 6. 然后继续点击 Next > Next > Next > Install 7. ### 安装完成后需要通过 git bash 配置 Git 1. `git config --global user.name 'YourName'` 2. `git config --global user.email 'YourEmail'` ___ ## Git 命令 ___ ### 获取和创建项目 | 命令 | 描述 | | ------- | ----------- | | `git init` | 初始化本地 Git 仓库 | | `git clone ssh://git@github.com/[username]/[repository-name].git` | 创建远程仓库的本地副本 | ### 基本快照操作 | 命令 | 描述 | | ------- | ----------- | | `git status` | 检查状态 | | `git add [file-name.txt]` | 将文件添加到暂存区 | | `git add -A` | 将所有新增和修改的文件添加到暂存区 | | `git commit -m "[commit message]"` | 提交更改 | | `git rm -r [file-name.txt]` | 删除文件(或文件夹) | | `git push` | 推送到远程仓库 | | `git pull` | 从远程仓库拉取最新更改 | ### 分支与合并 | 命令 | 描述 | | ------- | ----------- | | `git branch` | 列出分支(星号表示当前分支) | | `git branch -a` | 列出所有分支(本地和远程) | | `git branch [branch name]` | 创建新分支 | | `git branch -D [branch name]` | 删除分支 | | `git push origin --delete [branch name]` | 删除远程分支 | | `git checkout -b [branch name]` | 创建新分支并切换到该分支 | | `git checkout -b [branch name] origin/[branch name]` | 克隆远程分支并切换到该分支 | | `git branch -m [old branch name] [new branch name]` | 重命名本地分支 | | `git checkout [branch name]` | 切换到某个分支 | | `git checkout -` | 切换到上次检出的分支 | | `git checkout -- [file-name.txt]` | 丢弃文件的更改 | | `git merge [branch name]` | 将某分支合并到当前分支 | | `git merge [source branch] [target branch]` | 将某分支合并到目标分支 | | `git stash` | 将工作目录中的更改暂存 | | `git stash clear` | 清除所有暂存的条目 | ### 项目共享与更新 | 命令 | 描述 | | ------- | ----------- | | `git push origin [branch name]` | 推送分支到远程仓库 | | `git push -u origin [branch name]` | 推送更改到远程仓库(并记住分支) | | `git push` | 推送更改到远程仓库(记住的分支) | | `git push origin --delete [branch name]` | 删除远程分支 | | `git pull` | 更新本地仓库到最新提交 | | `git pull origin [branch name]` | 从远程仓库拉取更改 | | `git remote add origin ssh://git@github.com/[username]/[repository-name].git` | 添加远程仓库 | | `git remote set-url origin ssh://git@github.com/[username]/[repository-name].git` | 设置仓库的远程分支为 SSH | ### 检查与比较 | 命令 | 描述 | | ------- | ----------- | | `git log` | 查看更改 | | `git log --summary` | 查看详细更改 | | `git log --oneline` | 简要查看更改 | | `git diff [source branch] [target branch]` | 合并前预览更改 | --- **免责声明**: 本文档使用AI翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于关键信息,建议使用专业人工翻译。因使用本翻译而导致的任何误解或误读,我们概不负责。