git使用方法及小技巧

推荐使用TortoiseGit的GUI来配合Git使用,效果更佳。内容以干货为主,如果需要了解更多,可以通过搜索引擎或AI了解某一块的使用方法。

为什么推荐TortoiseGit

免费,简洁,好用,可视化。

尤其是对于分支合并/变基而言,产生冲突后会给我们列出冲突文件,并支持在其自带的编辑器中修改并解决冲突,相比使用cli要方便很多,且直观。

在查看文件历史时,也可以非常方便地查看差异。

创建仓库(本地)

在项目目录单击鼠标右键,点击Git在这里创建版本库,点确定(不要勾选制作纯版本库,那个是给服务器用的),即可创建本地git仓库。

建议添加.gitignore文件,以便于忽略某些不需要版本管理的文件。给出一个比较通用的模板:

# 用户特定文件
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates

# 编译生成的文件夹
Debug/

# Visual Studio 缓存文件
vs/

# 测试结果
[Tt]est[Rr]esult*/
*.trx
*.coverage
*.coveragexml

# NuGet 包
*.nupkg
**/[Pp]ackages/*
!**/[Pp]ackages/build/

# 日志和临时文件
*.log
*.tmp
*.bak

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb

# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

提交与分支

提交(commit)与分支(branch)是Git中最重要的概念。

提交会记录文件的修改,同时可以填写日志信息以记录本次修改的说明。TortoiseGit提交的方法:在工作目录下点击鼠标右键,点击Git提交,会弹出提交窗口,信息填好后点击提交即可。注意在电脑上第一次使用可能需要设置作者。如需给上一次的提交追加文件或修改说明,可以在TortoiseGit的提交页面勾选“修改上次提交”;如果想仅修改日志信息,可以勾选“仅仅消息”。

分支则允许开发者在同一个仓库并行开发,不同的分支最后可以合并或变基,也可以摘取(cherry-pick)提交。在创建仓库时,会默认创建一个主分支(名称取决于你的全局设定),而新建分支可以基于某个提交/分支/标签/HEAD来创建。检出分支会修改当前工作目录下被Git管理的文件,不被管理的文件会保持原样。创建分支有两种方法:

  • 点击鼠标右键,TortoiseGit->创建分支,填写分支名称,根据实际需要选择基于什么来创建分支,如果需要马上切换分支(会修改工作目录),则勾选“切换到新分支”,最后点击确定;
  • 点击鼠标右键,TortoiseGit->切换/检出,勾选“创建新分支”并填写分支名,点击确定。

工作树

为了更方便地并行开发,可以使用工作树(worktree)功能。

右键单击项目目录(前提是已创建仓库),选择TortoiseGit->工作树,将会弹出工作树列表。

点击添加,在新建工作树页面中,选择或填写目录路径(重要,不要跟原来的目录混在一起),选择基于什么分支/标签/提交来创建工作目录,若要为工作树新建一个分支,则可以勾选“创建新分支”并填写分支名。

点击确定后,将会在填写的目录路径下生成相应的文件。从效果上来说,就跟你直接复制了一份工作目录一样,只不过不在Git管理范围的文件不会生成出来。

如果要删除工作树,同样先来到工作树列表,然后鼠标右键单击想要删除的工作树,选择删除,点是,就可以删掉了。注意,此操作同时会删除工作数关联的工作目录,建议删除前自行备份,以防重要文件丢失(特别是Git管理范围外的文件)。

注意,工作树的关联会在工作树的工作目录下的.git文件中,由于其使用的是绝对路径,因此一旦主工作目录发生移动,工作树关联就会失效。有3个方法可以重新创建关联:

  1. 修改工作树.git文件,将gitdir: 后旧的主工作目录的路径修改为新的主工作目录,注意不要动/.git/worktrees/后面这一段,否则关联依旧失效;然后前往刚刚修改的新gitdir路径,找到gitdir文件,将里面的内容修改为新的工作树的工作目录
  2. 备份工作树的工作目录(不包含.git文件)并删除目录,先在主工作目录下调出工作树列表,点击修剪(注意这会清理掉所有失效关联),然后重新创建工作树,再将原本的文件覆盖到工作树的工作目录中即可
  3. 使用repair功能,但需要在PowerShell中操作。在工作树的工作目录中按住Shift+鼠标右键,选择“在此处打开 PowerShell 窗口”,输入“git worktree repair <主工作目录>”,将“<主工作目录>”替换为实际路径即可。

评论已关闭