Skip to content

GitLab - Git 命令

虽然 GitLab 提供了许多操作的 Web 界面,但 Git 本身是一个命令行工具。理解基本的 Git 命令对于使用 GitLab 进行高效的版本控制和协作至关重要。这些命令在您的本地项目仓库的终端或命令行提示符中运行。

在使用 Git 之前,请配置您的用户名和电子邮件地址。这些信息将与您的提交 (commits) 相关联。

$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@example.com"

检查您的配置:

$ git config --global --list

检查 Git 版本:

$ git --version

从 GitLab 克隆一个现有仓库:

$ git clone <repository_url>

在现有目录中初始化一个新的 Git 仓库:

$ git init

列出所有本地分支(当前分支用星号标记):

$ git branch

创建一个新分支:

$ git branch <new-branch-name>

切换到分支(现代 Git 推荐使用 git switch):

$ git switch <branch-name>
# 旧命令:
# $ git checkout <branch-name>

立即创建并切换到一个新分支:

$ git switch -c <new-branch-name>
# 旧命令:
# $ git checkout -b <new-branch-name>

将其他分支的更改合并到当前分支(例如,将 feature-branch 合并到 main):

$ git switch main
$ git merge feature-branch

删除本地分支(安全删除,仅在已合并时):

$ git branch -d <branch-name>

强制删除本地分支(谨慎使用):

$ git branch -D <branch-name>

检查工作目录 (working directory) 和暂存区 (staging area) 的状态:

$ git status

将文件更改添加到暂存区:

$ git add <file-name> # 添加指定文件
$ git add . # 添加当前目录及子目录中所有更改

将暂存的更改提交 (commit) 到本地仓库:

$ git commit -m "Your descriptive commit message"

查看提交历史:

$ git log
$ git log --oneline --graph --decorate # 更简洁的视图

注意:origin 是远程仓库的默认名称。主分支通常命名为 main(现代)或 master(旧式)。

从远程仓库抓取 (fetch) 更改(不合并):

$ git fetch origin

从远程仓库拉取 (pull) 更改(抓取并合并/变基):

$ git pull origin <branch-name>
# 示例:git pull origin main

如果您的本地分支正在跟踪远程分支,通常可以直接使用:

$ git pull

将您的本地提交推送 (push) 到远程仓库:

$ git push origin <branch-name>
# 示例:git push origin feature-branch

首次推送时设置上游分支 (upstream branch)(以便后续的 git push 和 git pull 可以不带参数运行):

$ git push -u origin <branch-name>

丢弃工作目录中特定文件的更改(现代 Git 推荐使用 git restore):

$ git restore <file-name>
# 旧命令:
# $ git checkout -- <file-name>

取消暂存文件(从暂存区移除但保留更改):

$ git restore --staged <file-name>
# 旧命令:
# $ git reset HEAD <file-name>

修改最后一次提交 (Amend the last commit)(修改信息或添加更多更改):

$ git commit --amend

注意:避免修改已推送到共享远程分支的提交。

撤销提交 (Revert a commit)(创建一个新提交,撤销之前提交的更改):

$ git revert <commit-hash>

将当前分支重置 (Reset) 到之前的提交(可能会丢失数据,请谨慎使用):

$ git reset --hard <commit-hash> # 丢弃该提交之后的所有更改
$ git reset --soft <commit-hash> # 保留暂存的更改

从工作目录中移除未跟踪的文件 (untracked files)(危险 - 无法撤销):

$ git clean -f # 移除未跟踪的文件
$ git clean -fd # 移除未跟踪的文件和目录

这份列表涵盖了许多常用的 Git 命令,但 Git 是一个功能强大的工具,还有更多特性。如需进一步学习,请参考官方 Git 文档 (git-scm.com) 或在线提供的交互式教程。