Next step Git for those that already know add and commit The list

2025-05-27

下一步 Git 适用于已经知道 add 和 commit 的人

清单

不久前,我刚开始使用 Git 时,感觉它相当简单,尽管我必须适应 Git 的离线特性,这与 TFS 的工作方式(或者说以前的工作方式)不同。我主要使用 Visual Studio 的 Git 集成,通常它运行得非常好。

但过了一段时间,事情开始变得复杂起来。我必须处理子模块、更改远程 URL,还要处理未跟踪的文件。就在那时,我决定离开 Visual Studio 的舒适区,转而使用 Git CLI。

Git CLI 不太容易记住,而且所有操作都有多种方法,所以我开始自己整理一些有用的命令。以下是整理的结果。希望它能对正在经历同样过程的朋友们有所帮助,如果您也有一些 Git 精华,也请告诉我。

清单

没有任何特定顺序。

编辑配置

在 Windows 上,Git 配置文件通常位于 “c:\Users[user]” 目录下。您也可以从命令提示符启动编辑器。

git config --global -e

设置提交消息的编辑器

要将提交消息的默认编辑器更改为 Notepad++,请在配置文件中添加一个 [core] 部分,如下所示。

[core]
    editor = 'C:/put-your-folder-here/Notepad++/notepad++.exe' -multiInst -notabbar

从现在开始,只要您运行 git commit 而不使用 -m 开关,Notepad++ 就会打开。

将合并工具设置为 Visual Studio

[diff]
    tool = vsdiffmerge
[difftool]
    prompt = true
[difftool "vsdiffmerge"]
    cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\Common7\\IDE\\CommonExtensions\\Microsoft\\TeamFoundation\\Team Explorer\\vsDiffMerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
    keepbackup = false
    trustexistcode = true
[merge]
    tool = vsdiffmerge
[mergetool]
    prompt = true
[mergetool "vsdiffmerge"]
    cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\Common7\\IDE\\CommonExtensions\\Microsoft\\TeamFoundation\\Team Explorer\\vsDiffMerge.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" //m
    keepbackup = false
    trustexistcode = true

子模块

克隆子模块

如果 repo 包含子模块,并且您想要将子模块中的代码带下来,则需要递归克隆。

git clone --recursive https://github.com/hocuspocus/icsharp.git

将子模块更改为自己的分支

如果您已经克隆了一个带有子模块的 repo,并且想要将子模块更改为不同的 fork(例如,如果您已经 fork 了子模块),则需要编辑文件 .gitsubmodule 中的 URL。

[submodule "Engine"]
    path = Engine
    url = https://github.com/scriptcs/scriptcs.git

保存.gitsubmodule后,运行命令。

git submodule sync

看起来这可能与 HEAD 分离,因此可能需要进行检出(在进行任何本地更改之前)。

git checkout

如果您在下载子模块的代码时遇到问题,请尝试运行以下命令:

git submodule update --remote

启动合并工具

如果有合并工具,您可以启动您的合并工具(在配置文件中设置)。

git mergetool

与远程比较

首先从远程仓库获取所有内容:

git fetch origin

然后与本地进行比较:

git log HEAD..origin/master --oneline

如果您对结果满意,您可以将远程更改与本地存储库合并:

git merge

显示远程 URL

显示“origin”的远程 URL:

git remote get-url origin

如需更多信息,您可以使用:

git remote show origin

如果你的遥控器已经移动,你可以使用set-url更改 URL

git remote set-url origin https://hocuspocus@bitbucket.org/myteam/myproject.git

删除分支

删除远程分支:

git push -d <remote_name> <branch_name>

例如:

git push -d origin my-feature-branch

您还可以使用:

git push <remote_name> :<branch_name>

删除本地分支:

git branch -d <branch_name>

删除本地更改

撤消所有未暂存的本地更改:

git checkout .

撤消对单个文件的 git add:

git reset folder/file.cs

撤消git add .

git reset .

修复未跟踪的文件

git rm . -r --cached
git add .
git commit -m "Fixed untracked files"

为命令创建别名

如果您厌倦了输入冗长而难以忘记的命令,您可以创建别名。

git config --global alias.a "add ."
git config --global alias.c "commit"

您现在只需键入即可git a添加未暂存的文件。

别名也可以直接添加到配置文件中。

[alias]
    a = add .
    c = commit
文章来源:https://dev.to/t4rzsan/next-step-git-for-those-that-already-know-add-and-commit-55ac
PREV
#100DaysOfPython 第一天:Hello World、数据类型和字符串。是什么促使我选择 Python 作为我的第二语言?为什么我要写博客?#100DaysOfPython 系列的第二天我会学习什么?
NEXT
那么,您想构建一个物联网项目吗?