Git基础使用 命令以及对应的VScode可视化操作
Git+VSCode的使用,git命令以及对应的VSCode可视化操作
·
Git基础使用 命令以及对应的VScode可视化操作
基础使用
1. 仓库初始化:
git init
2. 添加文件进行管理/暂存:
git add . # 添加所有文件
3. 本地提交:
首次提交需要配置用户名邮箱
git config --global user.name "name"
git config --global user.email "mail@mail.com"
git commit -m "Initial commit"
4. 添加远程仓库:
git remote add github https://github.com/XXX/XXX.git
5. 远程推送:
将本地内容推送到远程仓库
git push -u github main
6. 远程拉取
将远程仓库的内容拉取到本地
git pull origin master
补充:使用.gitignore忽略项目中不想托管的内容
- 新建.gitignore文件
- 添加需要忽略的内容,如 *.pth
- 下面是一份常用的.gitignore(python深度学习项目)
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# PyCharm
.idea/
*.iml
*.iws
*.ipr
# VS Code
.vscode/
# Logs and databases
*.log
*.sqlite3
# Deep learning model weights and datasets
*.h5
*.ckpt
*.pth
*.pt
*.pkl
*.npy
*.npz
# Temporary files
*.tmp
*.temp
*.bak
*.swp
*.swo
*.orig
*.DS_Store
# System files
Thumbs.db
.DS_Store
补充:移除所有 Git 历史和配置
rm -rf .git
补充:Git菜单项功能与对应命令
父菜单项 | 子菜单项 | Git 命令 | 功能/描述 |
---|---|---|---|
View & Sort > | Sort Commits By… | (UI 功能) | 更改提交历史的排序方式(按日期、作者等)。 |
Commit > | Commit Staged | git commit -m "<message>" |
将暂存区的更改记录到版本历史中,并附带提交信息。 |
Commit All | git commit -a -m "<message>" 或 git add . && git commit -m "<message>" |
暂存所有已跟踪文件的修改和删除,然后进行提交。 | |
Commit All (Include Untracked) | git add . && git commit -m "<message>" |
暂存工作目录中的所有更改(包括新文件),然后进行提交。 | |
Amend Previous Commit | git commit --amend |
修改最后一次提交(可修改提交信息、添加/移除文件)。 | |
Commit Staged (Signed) | git commit -S -m "<message>" |
创建一个 GPG 签名的提交(需要配置 GPG 密钥)。 | |
Changes > | Stage Changes / Add | git add <file> |
将选定的文件更改添加到暂存区。 |
Stage All Changes / Add All | git add . 或 git add -A |
将工作目录中所有文件的更改(新增、修改、删除)添加到暂存区。 | |
Unstage Changes / Reset | git reset HEAD <file> 或 git restore --staged <file> |
将选定的已暂存文件移出暂存区,放回工作目录状态。 | |
Unstage All Changes / Reset All | git reset HEAD 或 git restore --staged . |
将所有已暂存的文件移出暂存区。 | |
Discard Changes / Checkout Changes | git checkout -- <file> 或 git restore <file> |
撤销选定工作目录文件的修改,恢复到上次提交或暂存的状态。 | |
Discard All Changes | git checkout . / git restore . / git clean -fd (危险) |
撤销工作目录中所有已跟踪文件的修改;可能删除未跟踪文件(需谨慎操作)。 | |
Open Changes / Show Diff | git diff <file> / (内部 Diff 工具) |
显示选定文件与上次提交或暂存状态之间的差异。 | |
Pull, Push > | Pull | git pull <remote> <branch> |
从指定的远程仓库和分支拉取最新更改并合并到当前本地分支。 |
Push | git push <remote> <branch> |
将本地已提交的更改推送到指定的远程仓库和分支。 | |
Push with Tags | git push --follow-tags 或 git push --tags |
在推送提交的同时,推送本地存在的(或相关的)标签。 | |
Force Push… | git push --force-with-lease <remote> <branch> 或 git push --force ... (危险) |
强制覆盖远程分支的历史记录(警告: 通常不推荐,仅在确知后果时使用)。 | |
Synchronize Changes / Sync | 常为 git pull --rebase (或 git pull ) + git push 的组合 |
先从远程更新本地分支,然后将本地的新提交推送到远程,保持同步。 | |
Set Upstream / Track Remote Branch | git push -u <remote> <branch> 或 git branch --set-upstream-to=... |
设置当前本地分支跟踪一个指定的远程分支,简化后续的 pull/push 操作。 | |
Branch > | Merge | git merge <branch-to-merge> |
将指定分支的更改合并入当前签出的分支。 |
Create Branch… | git branch <new-name> 或 git checkout -b <new-name> |
创建一个新的本地分支(后者会同时切换到新分支)。 | |
Create Branch From… | git checkout -b <new-name> <start-point> |
从指定的提交、标签或其他分支创建新分支并切换过去。 | |
Checkout / Switch Branch… | git checkout <branch-name> |
切换当前工作目录到指定的已存在分支。 | |
Rename Branch… | git branch -m <new-name> |
重命名当前所在的本地分支。 | |
Delete Branch… | git branch -d <name> (安全) 或 git branch -D <name> (强制) |
删除指定的本地分支(-d 会检查是否已合并,-D 强制删除)。 | |
Rebase Current onto Branch… | git rebase <base-branch> |
将当前分支的提交“变基”到指定的基础分支之上,使历史线性化。 | |
Publish Branch / Push Branch | git push -u <remote> <branch-name> |
将本地新创建的分支推送到远程仓库,并设置跟踪关系。 | |
Remote > | Add Remote… | git remote add <name> <url> |
添加一个新的远程仓库别名和地址。 |
Remove Remote… | git remote remove <name> |
删除一个已存在的远程仓库连接。 | |
Tags > | Create Tag… | git tag <name> (轻量) 或 git tag -a <name> -m "<message>" (附注) |
在当前 HEAD 或指定提交上创建一个标签(轻量标签仅是指针,附注标签包含额外信息)。 |
Delete Tag… | git tag -d <name> (本地) / git push --delete <remote> <name> (远程) |
删除一个本地标签或请求远程仓库删除一个标签。 |
说明:
- (UI 功能) 或 (编辑器功能) 表示该菜单项主要控制图形界面本身或调用外部程序,不直接执行核心的 Git 操作命令。
<...>
中的内容是占位符,实际使用时需要替换为具体的文件名、分支名、远程仓库名、提交信息等。- 某些操作可能有多种对应的 Git 命令或参数组合,表格中列出了常见的形式。
- 标记为 (危险) 的操作需要特别小心,可能会丢失数据或破坏仓库历史,务必在理解其影响后再使用。
克隆别人的项目并且上传到自己的仓库
首先复制希望克隆的项目URL地址。
1. 点击克隆仓库,粘贴远程仓库地址
2. 选择本地仓库地址
3. 将克隆项目上传到自己的仓库
- 首先点击下图中的
Remove Remote
移除之前的远程仓库; - 点击
Add Remote
添加自己的远程仓库,这和前面4. 添加远程仓库
相同
检查远程仓库,确认地址:
git remote -v
- 在对项目进行修改之后点击就可以按照之前的操作顺序上传到自己的仓库了。
- PS:这样做的目的是保留别人仓库的各个版本修改信息。如果不需要,直接下载别人的项目压缩包进行git的初始化是更加方便的操作。
Github个人令牌的使用–克隆自己的私有仓库(Cursor登录GitHub举例)
1. 创建个人令牌
- 路径:点击右上角的头像,选择 “Settings”,在左侧菜单栏底部选择 “Developer settings”,在左侧菜单栏,选择 “Personal access tokens” -> “Tokens (classic)”。 直达链接
- 点击 “Generate new token” (或者 “Generate new token (classic)”)。
- Note (名称): 描述性的名字,例如 “Cursor Access”。
- Expiration (有效期): 自己用选无限期就行了(为了安全,官方不建议选择 “No expiration”,甚至不建议classic tokens而是Fine-grained tokens)。
- Select scopes (选择范围): 设置此token的各类权限,懒得想就直接全选。如果你使用 Fine-grained tokens,还需要选择对应的读写权限。
- 点击页面底部的 “Generate token”。
- 重要: GitHub 只会显示一次key,尽快复制保存。
2. 在VScode/Cursor中登录GitHub
- 首先点击
克隆仓库
,然后点击从GitHub克隆
- 会提示登录,这里我们使用PAT方式,所以点击取消
- 接下来左下角会提示是否使用PAT方式认证,点击
yes
- 接下来提示前往GitHub创建令牌,我们刚刚已经创建好了,这里点击
continue
之后直接返回cursor就好 - 输入刚刚新建的PAT key即成功登录
3. 克隆自己的私有仓库
首先点击克隆仓库
,然后点击从GitHub克隆
,选择仓库或者输入搜索。然后选择本地路径,就可以克隆了。
VSCode中使用Git回退代码版本(待更新)
VSCode中使用Git切换分支(待更新)
更多推荐
所有评论(0)