见过最好的git入门教程

今天找到一篇见过最好的git入门教程

http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/

 

粘帖一些命令

1. git add 添加文件到staged area.
2. git commit 会commit staged file ,有几个选项比较重要:-a 跳过staged area,直接commit,后面加文件名也会使那个文件跳过stage,直接commit。但是前提是文件已经在index中了,新文件不会自动加入。
3.git status 查看从上次commit到目前的变化,git diff会更详细,但是它只包含应该要包含在staged area中却还未包含进去的变化,git diff --staged则列出来从上次commit到staged area的变化。
4. .gitignore文件可以设置哪些文件被排除进去,通常可以设.o, .a等文件。
5. git rm 用来remove文件。
6. git mv可以用来重命名文件。
7. git log用来查看日志,git log -p查看详细,gitk 是个图形化的查看工具。
8.Unstaging a Staged File可以用git reset HEAD <file>。 Unmodifying a Modified File可以用git checkout -- <file>。 git commit --amend用来取消上次的commit。
9. git remote显示所有的remote(加-v显示详细信息)。
 git remote add [shortname] [url]用来添加remote。 git fetch [remote-name]只会pull下来全部的更动,但不会自动merge,但是git pull会自动merge。 git remote show [remote-name]可以看到一个remote的详细信息。 git remote rename用来改变一个remote的名字。 git remote rm删除一个remote。
10.git tag列出所有的tag。git show tag-name可以查看tag详细信息。git tag [-a] tag-name -m message [commit-checksum]如果有-a 就添加一个annotated tag,如果没有-a,就添加一个lightweight tag,如果后面要在某个commit之后添加一个tag,就加上checksum好了。 git push有个选项 --tags会把tags信息也push上去。

11.
 git branch testing添加一个testing的branch. git checkout testing切换到testing branch. 
12. 切换branch的时候,当前的branch不能有和要切换过去的branch冲突的uncommitted changes.
13. git merge branch-name 将branch-name merge到当前branch.如果有conflict,可以用status查看状态,解决conflict之后用add 通知git已经解决。然后用commit commit the merge。
14.
   git branch -d branch-name,但是这个branch必须被全部merge到HEAD中了。如果选项是-D的化,就不管它的merge status了。
15. git branch --merged只显示被HEAD完全包含的branch,--no-merged只显示没被HEAD完全包含的branch。
16.
 git push (remote) (branch)把本地某个branch push到remote上去。 git push (remote) (local-branch-name):(remote-branch-name)可以把本地branch push到remote branch上去。
17.git fetch 下载下来的branch不能edit,必须要手动merge到本地branch之后才可以edit。
   $ git checkout -b local-branch-name remote-name/remote-branch-name 可以把server上的branch下载下来,并且可以直接edit。
18.
 Tracking Branches里面可以不必在pull和push后面加remote参数。git branch -r列出remote tracking branches.
19. git push [remotename] :[remote-branch]删除掉某个remote branch。
20. rebase可以获得和merge一样的效果,但是log记录更好,因为看起来没有分支。
 git rebase --onto newbase upstream branch会把从upstream到branch的改动rebase到newbase上去。git rebase basebranch topicbranch会把topicbranch rebase到basebranch上。
21. 
Do not rebase commits that you have pushed to a public repository.

22.git fetch默认会获取repo所有branch的进度,除非指定哪个branch。git push可以将某个branch push到repo中去。

<think>嗯,用户想要了解在VS2015中使用Git进行本地操作的方法和使用指南。根据用户提供的引用内容,特别是引用[2]提到了VS Code中的Git操作,但用户指定的是VS2015,需要转换到Visual Studio 2015的环境。 用户可能是一位使用VS2015开发的程序员,正在学习如何在IDE中直接使用Git,而不是通过命令行或其他工具。ta可能刚接触Git,或者之前使用过其他版本控制工具,现在需要迁移到Git工作流。从ta明确指定VS2015来看,可能是在维护旧项目,或者在受限环境中工作。 回顾提供的引用材料: - 引用[1]强调了Git本地操作的重要性,提到练习是关键 - 引用[2]详细说明了VS Code中的Git分支操作流程,虽然IDE不同但概念相通 - 引用[3]提到了两种初始化仓库的场景,这对回答很有参考价值 需要特别注意: 1. VS2015内置的是Git插件而不是完整的Git集成,这点和现代VS Code不同 2. 要区分"本地操作"的具体范围:是指完全离线操作,还是包括本地仓库与远程的交互 3. 用户可能更需要step by step的操作指导而非概念解释 在构建回答时考虑: - 先说明VS2015的Git支持程度(基于历史版本) - 分基础操作(初始化/提交等)和进阶操作(分支/合并) - 补充命令行增强方案,因为VS2015的GUI功能有限 - 给出学习建议,引用[1]提到"可以在测试仓库中练习"这点很实用 用户没有提供具体痛点,所以采用全面但分层的讲解方式,把最常用操作(提交/推送)放在前面,分支管理等稍后。最后的问题设计成进阶路线,这样既解决当前需求又引导深入学习。 </think>好的,在 Visual Studio 2015 (VS2015) 中使用 Git 进行本地操作(版本库初始化、暂存、提交、分支管理、查看历史等),可以通过其集成的 Git 支持来完成。以下是详细的使用指南和方法,整合了您提供的引用信息中的通用 Git 概念并将其应用于 VS2015 环境: **VS2015 Git 本地操作指南** VS2015 内置了对 Git 的基本支持,允许开发者在不离开 IDE 的情况下执行核心的本地 Git 操作。熟练掌握这些操作是高效版本控制的基础[^1]。 **📌 前置准备 (VS2015 特定)** 1. **确保 Git 已安装:** VS2015 需要本机安装 Git。请从 [https://git-scm.com/downloads](https://git-scm.com/downloads) 下载并安装最新版 Git。安装时,建议选择“Use Git from the Windows Command Prompt”或“Use Git and optional Unix tools from the Windows Command Prompt”选项,确保 VS 能找到它。 2. **配置 Git 用户信息 (全局):** 这是 Git 提交记录必需的。 * 打开 **Git Bash** (安装 Git 时附带) 或 **命令提示符 (CMD)**。 * 执行: ```bash git config --global user.name "你的名字" git config --global user.email "你的邮箱" ``` * 也可以在 VS2015 中配置(稍后提到)。 3. **初始化 Git 仓库或克隆:** * **新建项目并初始化仓库:** 创建新项目时,在“新建项目”对话框中勾选 **“创建新 Git 存储库”**。VS2015 会自动在项目根目录初始化一个 Git 仓库。 * **克隆现有仓库:** 1. 打开 VS2015。 2. 导航到 `团队资源管理器` (Team Explorer) 窗口(视图 -> 团队资源管理器)。 3. 在“连接”视图下,点击“克隆”下的 **“克隆”**。 4. 输入远程 Git 仓库的 URL (如 `https://github.com/username/repo.git`)。 5. 选择本地存放路径。 6. 点击“克隆”。项目将被克隆到本地并打开。 * **现有项目添加 Git:** 如果项目目录尚未初始化 Git(项目根目录没有 `.git` 文件夹): 1. 在 `团队资源管理器` 中,切换到“主页”视图(房子图标)。 2. 点击“项目”下的“设置” > **“存储库设置”**。 3. 在“存储库设置”页面,找到“远程”部分。 4. 点击 **“添加”**,输入远程仓库名称(通常为 `origin`)和 URL。 5. 点击“保存更改”。 6. 此时,`团队资源管理器` 的“更改”视图应该会出现未跟踪的文件。你可以开始暂存和提交了。 7. *(或者,更简单的方法:在项目文件夹内右键 -> `Git Bash Here` -> 执行 `git init` 和 `git remote add origin <url>`。VS2015 会自动检测到仓库)*[^3]。 **🔧 VS2015 Git 本地核心操作流程** 1. **打开“团队资源管理器”:** `视图(View)` -> `团队资源管理器(Team Explorer)` 或使用快捷键 `Ctrl+\, Ctrl+M`。这是 Git 操作的核心面板。 2. **导航到“更改”视图:** * 确保“团队资源管理器”处于“主页”视图(顶部有房子图标)。 * 点击“项目”下的 **“更改”**。这是你执行暂存、提交操作的地方。 3. **暂存更改 (Stage Changes):** * 在“更改”视图中,你会看到: * **“更改” (Changes):** 已修改或删除的已跟踪文件。 * **“未跟踪的文件” (Untracked Files):** 新添加的文件,Git 尚未跟踪。 * 要暂存特定文件: * 右键点击该文件 -> 选择 **“暂存”**。 * 或选中文件,点击列表上方的 **“暂存”** 按钮 (带有加号 `+` 的文件图标)。 * 要暂存当前列表下的所有更改: * 在“更改”列表标题栏右侧,点击 **“暂存全部”** (带有多个加号 `+` 的文件夹图标)。 * 暂存后的文件会移动到 **“已暂存更改” (Staged Changes)** 区域。 4. **提交更改 (Commit):** * 在“已暂存更改”区域上方输入 **提交消息 (Commit Message)**。消息应简明扼要地描述此次提交的修改内容。 * 点击 **“提交暂存”** 按钮。 * *(可选 - 同步更改):* 提交成功后,VS2015 通常会提示你“提交已在本地创建”。此时,你可以选择 **“同步”** 将本地提交推送到远程仓库(`git push`),或者稍后推送。对于纯本地操作,可以先忽略同步。 5. **查看提交历史:** * 在“团队资源管理器”的“主页”视图中,点击“项目”下的 **“历史”**。 * 这里会按时间倒序列出所有本地分支的提交记录。 * 右键点击某个提交,可以执行查看更改详情 (`查看提交详细信息`)、比较 (`比较...`)、创建标签 (`创建标记...`)、创建分支 (`创建分支...`) 等操作。 6. **分支管理 (Branching):** [^2] * **查看分支:** 在“团队资源管理器”的“主页”视图中,点击“项目”下的 **“分支”**。你会看到本地分支列表(当前分支前有 `*`)和远程跟踪分支 (`origin/...`)。 * **创建新分支:** 1. 在“分支”视图,右键点击你希望基于其创建新分支的分支(通常是 `master` / `main` 或 `develop`)。 2. 选择 **“新建本地分支...”**。 3. 输入新分支名称(按推荐的 `feature/*`, `bugfix/*` 等规范命名[^2])。 4. 勾选 **“签出分支”**(切换到新分支)。 5. 点击“创建分支”。 * **切换分支 (Checkout):** * 在“分支”视图的本地分支列表中,双击你想要切换到的分支。 * 或右键点击目标分支 -> 选择 **“签出”**。 * **合并分支 (Merge):** 1. 确保你当前在**目标分支**上(例如,要把 `feature/my-feature` 合并进 `develop`,则先切换到 `develop`)。 2. 在“分支”视图,右键点击你希望**合并到当前分支**的那个分支(例如 `feature/my-feature`)。 3. 选择 **“合并自...”**。 4. 确认合并信息,处理可能的冲突(见下文)。 * **删除本地分支:** * 在“分支”视图,展开“本地分支”。 * 右键点击要删除的分支 -> **“删除”**。*(注意:只能删除已合并且非当前分支的分支。强制删除需谨慎)* 7. **处理合并冲突:** * 如果在合并、变基或拉取时发生冲突,VS2015 会提示并在“团队资源管理器”的“更改”视图中列出冲突文件。 * 双击冲突文件,VS2015 会打开内置的 **合并冲突解决工具**。 * 工具界面通常分为三部分: * 左侧:当前分支版本 (`Current Change`)。 * 右侧:传入分支版本 (`Incoming Change`)。 * 中间:结果区域 (`Result`)。 * 手动选择保留左侧、右侧内容,或直接编辑中间区域解决冲突。 * 解决完所有冲突后,保存文件。 * 回到“更改”视图,冲突的文件状态会变成“已修改”。**暂存并提交**这些文件以完成冲突解决过程。 8. **撤销更改:** * **丢弃未暂存的修改:** 在“更改”视图的“更改”列表,右键点击文件 -> **“撤消更改...”**。这会将该文件恢复到上次提交的状态(小心使用)。 * **取消暂存:** 在“已暂存更改”区域,右键点击文件 -> **“取消暂存”**。文件会移回“更改”列表。 * **撤销最新的本地提交 (软撤销):** 在“历史”视图中,右键点击最新的提交(HEAD)-> **“撤消提交...”**。这会撤销提交,但保留更改在工作目录中(处于修改/暂存状态)。你可以重新修改并提交。 **📌 重要提示 (VS2015 特定)** * **Git 命令行集成:** VS2015 集成了 Git 命令行 (`Git Bash`)。可以通过 `工具(Tools)` -> `命令行(Command Line)` -> `Developer Command Prompt` 或在解决方案资源管理器右键项目 -> `Open Command Prompt` (可能需要插件)。这对于执行更复杂或 VS UI 未完全支持的 Git 命令非常有用。 * **配置 VS 内的 Git 用户:** 可以在“团队资源管理器” -> “主页” -> “项目”下的“设置” -> “存储库设置” -> “全局设置”中查看和编辑 `user.name` 和 `user.email`(通常继承全局配置)。 * **功能局限性:** VS2015 的 Git 集成相对现代 VS Code 或更高版本 VS 较弱。高级操作(如交互式 rebase, stash, cherry-pick 的完整 UI)可能不如命令行方便或需要第三方插件增强。 * **.gitignore:** 务必为项目创建 `.gitignore` 文件,排除不需要版本控制的文件(如编译输出 `bin/`, `obj/`, 用户特定文件 `*.user`, NuGet 包 `packages/` 等)。VS2015 可以右键解决方案 -> `Add` -> `New Item...`,在“解决方案项”中选择 `.gitignore File` (或手动创建文本文件并命名为 `.gitignore`)。模板可参考 [https://github.com/github/gitignore](https://github.com/github/gitignore)。 **💡 总结** 通过 VS2015 的“团队资源管理器”,你可以高效地完成 Git 的核心本地操作:初始化/克隆仓库、暂存更改、提交代码、查看历史、创建/切换/合并/删除分支以及解决冲突。虽然其界面和功能相比更新的工具略显陈旧,但对于基本的本地工作流已经完全够用。记住,实践是掌握 Git 的关键,建议在测试仓库中反复练习这些操作[^1]。结合 Git 命令行可以弥补 IDE 集成的不足,完成更复杂的任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值