1.基本概念:
Git是一个免费、开源的分布式版本控制系统,旨在快速高效地处理从小型到大型项目的版本管理。它易于学习,占用空间小,性能极快,并具有廉价的本地库、方便的暂存区域和多个工作流分支等特性。Git由Linus Torvalds开发,用于更好地管理Linux内核的开发,并已广泛应用于各种项目的版本控制中
2.安装:
2.1 windows:你可以从 Git for Windows 下载安装程序并按照提示进行安装
2.2 Macos: MacOS 用户可以通过 Homebrew 来安装 Git:
2.3 linux:
3.Git使用命令:
3.1仓库初始化与配置
3.2 文件操作
3.3 分支操作
3.4 远程仓库操作
3.5 查看与日志
3.6 其他常用命令
4.在IntelliJ IDEA 中 Git的使用:
4.1 配置Git
首先,确保已经安装了Git。然后,在IntelliJ IDEA中配置Git路径:打开“File”菜单,选择“Settings”(Windows/Linux)或“Preferences”(macOS)。
在弹出的对话框中,选择“Version Control” -> “Git”。在这里,可以配置Git的路径和其他相关设置。如果Git安装在默认路径下,IDEA通常会自动找到。如果更改了Git的安装位置,则需要手动配置Git的路径。
4.2 创建或克隆仓库
创建新的 Git 仓库: 如果你想要在本地创建一个新的 Git 仓库,可以通过以下步骤操作:
打开一个项目或新建一个项目。
转到 VCS > Enable Version Control Integration,选择 Git。
这样就会在项目根目录中创建一个新的 .git 文件夹,这意味着该项目现在已经是一个 Git 仓库。
克隆已有的 Git 仓库:
转到 File > New > Project from Version Control。
选择 Git,在弹出的对话框中输入仓库的 URL 和本地存储路径。
点击 Clone,项目会被克隆到本地并自动打开。
4.3基本的 Git 操作
在 IntelliJ IDEA 中,Git 的常用操作可以通过 VCS 工具栏或右键菜单轻松完成。
提交更改 (Commit):进行代码修改后,点击工具栏上的 Commit 按钮,或者使用快捷键 Ctrl + K (Cmd + K on Mac)。
在弹出的对话框中,选择你要提交的文件,输入提交信息,并点击 Commit 或 Commit and Push。
推送更改 (Push):在提交之后,你可以将更改推送到远程仓库。点击 VCS > Git > Push 或者使用快捷键 Ctrl + Shift + K (Cmd + Shift + K on Mac),然后确认推送。
拉取更改 (Pull):你可以通过 VCS > Git > Pull 拉取远程仓库的最新更改。IDEA 将自动合并更改,并显示任何可能的冲突。
分支管理 (Branches):点击右下角的分支名称可以打开分支管理界面。你可以在这里创建新分支、切换分支、合并分支、删除分支等操作。
4.4 解决冲突
当多人修改同一文件并推送到远程仓库时,可能会发生冲突。需要手动解决冲突并合并代码:IDEA会提示冲突文件,打开这些文件,IDEA会显示冲突内容。手动编辑文件以解决冲突,然后重新提交并推送
4.5 查看提交历史
查看日志:转到 VCS > Git > Show History,你将看到当前分支的所有提交历史。
在历史记录窗口中,你可以查看每个提交的详细信息,包括提交者、时间、修改内容等。
对比更改:在提交历史中,你可以选择两个提交来对比它们之间的更改。IDEA 会显示一个对比视图,帮助你清晰地看到文件内容的变化。
4.6 回滚更改
撤销最后一次提交:右键点击你想回滚的提交,然后选择 Revert Commit。
这将生成一个新的提交,用于撤销上一个提交的更改。
回滚未提交的更改:如果你不想保留当前的更改,可以使用 VCS > Git > Revert,或者在项目窗口中右键点击文件选择 Revert 来回滚未提交的文件更改。
4.7高级功能
IntelliJ IDEA 还提供了一些高级 Git 功能,如交互式重写提交历史(Interactive Rebase)、Cherry-Pick 提交、Stash 暂存等。
Rebase 和 Cherry-Pick:
Rebase:允许你将一个分支的更改整合到另一个分支。
Cherry-Pick:从其他分支中选择特定的提交并将它们应用到当前分支。
Stash 更改:如果你需要暂时保存当前的更改但不想提交它们,可以使用 VCS > Git > Stash Changes。
完成其他工作后,你可以通过 VCS > Git > Unstash Changes 恢复这些更改。