1、Git是什么?用途是?
Git 是一个免费、开源的分布式版本控制系统,由 Linus Torvalds 在2005年为了更好地协调 Linux 内核开发而创建。主要用途是帮助软件开发者追踪和管理源代码的更改历史,以便于多人协作开发项目以及单人项目的版本控制,可以极大地提高代码管理和协同工作的效率。
以下是Git的主要用途:
-
版本控制:Git允许用户随时保存项目各个阶段的状态,每个提交都是一个可回滚的版本,这样开发者就可以轻松查看或恢复到之前任何一个版本。
-
协同开发:Git支持分布式工作模式,每个开发者都有完整的本地仓库副本,可以独立进行开发和提交变更。开发者可以将各自的修改合并到中心仓库(远程仓库),便于团队成员间同步代码和解决冲突。
-
分支管理:Git强大的分支功能使得并行开发变得容易,团队成员可以在不同分支上同时开发新功能、修复bug等,完成后合并回主分支或其他目标分支。
-
高效性能:Git的设计使其在处理大量数据时保持高效的性能,尤其适合大型项目和拥有众多贡献者的开源项目。
-
备份和容灾:由于本地就有完整的历史记录,即便远程仓库出现问题,团队成员也能通过本地仓库恢复数据。
2、GIT的工作区、暂存区和仓库是?
在Git版本控制系统中,文件会经历不同的状态,并在以下三个主要区域(工作区、暂存区、仓库)之间流转(代码必须先从工作区转到暂存库再到仓库):
- 工作区:工作区是本地计算机上直接编辑和修改代码的地方,包含了项目的所有实际文件。当你新建、修改或删除文件时,这些变化首先发生在工作区。
- 暂存区:暂存区是一个临时区域,也称为索引。当你决定将工作区中的一些更改纳入下一次提交时,你需要先使用
git add
命令把这些更改“暂存”起来。暂存区就像是一个暂存箱,用来保存那些你希望作为下一次提交一部分的改动。 - 仓库:仓库是Git用来保存所有版本历史记录的地方。一旦你在暂存区准备好一组更改,并执行
git commit
命令,这些更改就被永久地写入仓库,并生成一个新的提交(commit)。每一个提交都代表着项目在某个时刻的一个快照,包含了暂存区当时的所有内容。
文件如何改变其位置(转变状态):
- 从工作区到暂存区: 当你在工作区修改了一个文件,想要将这个改动包含到下一次提交时,执行后,这样就把文件的新版本添加到了暂存区。
git add <filename>
- 从暂存区到仓库: 当暂存区中的文件已经准备好提交时,执行后,这将会把暂存区中所有的更改打包成一个提交,并将其移到仓库中。
git commit -m "提交信息"
- 撤销更改: 如果你想从暂存区移除某项更改(回到工作区状态),可以执行下面代码,这样会将暂存区中的指定文件的更改还原到工作区。
git reset <filename>
- 从工作区恢复文件: 如果在工作区误删了文件,可以执行以下代码,来从最近一次提交中恢复文件至工作区。
git checkout -- <filename>
3、GIT的常用操作:
Git的常用操作包括但不限于以下几个方面:
1、初始化与添加文件
- 初始化仓库:在本地目录创建一个新的Git仓库。
git init
- 添加文件到暂存区:标记文件以准备提交到仓库。
git add <file> # 添加单个文件
git add . # 添加当前目录下所有改动和新增文件
2、 提交更改
- 提交暂存区的内容到本地仓库:
git commit -m "提交信息"
其中
-m
参数后面跟的是提交消息,用于描述这次提交做了哪些改动。
3、分支管理
- 创建并切换分支:
git checkout -b <new_branch>
- 列出本地分支:
git branch
- 切换分支:
git checkout <branch_name>
- 合并分支:
git merge <branch_to_merge>
- 删除本地分支:
git branch -d <branch_name>
4、远程仓库操作
- 添加远程仓库:
git remote add origin <remote_repository_url>
- 推送到远程仓库:
git push -u origin <branch_name>
- 从远程仓库拉取最新代码:
git pull origin <branch_name>
- 克隆远程仓库:
git clone <remote_repository_url> [-b <branch_name>] [本地目录]
- 删除远程分支:
git push origin --delete <branch_name>
5、日志与版本查看
- 查看提交历史:
git log
- 重置本地工作区到特定提交:
git reset --hard <commit_hash>
6、暂存与恢复工作
- 暂存(存储)未提交的更改:
git stash
- 列出暂存列表:
git stash list
- 恢复暂存的更改:
git stash apply git stash pop # 应用并删除暂存区栈顶内容
- 清除所有暂存内容:
git stash clear
7、其他常见操作
- 查看当前仓库状态:
git status
- 删除已跟踪的文件:
git rm <file>