Git 命令大全

发布于:2024-09-19 ⋅ 阅读:(11) ⋅ 点赞:(0)

Git 命令大全:全面详解

Git 是目前最流行的分布式版本控制系统,被广泛应用于软件开发中。无论是个人项目还是团队协作,掌握 Git 命令可以帮助你更有效地管理代码版本和协作开发。本文将详细介绍常用的 Git 命令,涵盖从基础操作到高级使用场景。


一、Git 基础命令

1. 初始化仓库

  • git init

    用于在当前目录下初始化一个新的 Git 仓库。

git init
  • git clone <repository>

    从远程仓库克隆一个项目到本地。

    git clone https://github.com/user/repository.git

2. 配置 Git 用户信息

  • git config --global user.name "Your Name"

    设置全局用户名。

    git config --global user.name "Your Name"

  • git config --global user.email "your.email@example.com"

    设置全局用户邮箱。

    git config --global user.email "your.email@example.com"

  • git config --list

    查看所有配置。

    git config --list

3. 查看仓库状态

  • git status

    查看当前仓库的状态,显示有哪些文件发生了变化、哪些文件需要提交。

    git status

4. 添加文件到暂存区

  • git add <file>

    添加指定文件到暂存区。

    git add README.md

  • git add .

    添加当前目录下的所有变化到暂存区。

    git add .

5. 提交更改

  • git commit -m "commit message"

    提交暂存区中的更改,并添加提交信息。

    git commit -m "Initial commit"

  • git commit -a -m "commit message"

    将所有已跟踪的文件的更改提交(包括未暂存的变化),并添加提交信息。

    git commit -a -m "Updated files"

6. 查看提交历史

  • git log

    显示提交历史的日志信息。

    git log

  • git log --oneline --graph

    以图形化方式显示简洁的提交历史。

    git log --oneline --graph


二、分支管理

1. 创建和切换分支

  • git branch <branch-name>

    创建新分支。

    git branch feature-branch

  • git checkout <branch-name>

    切换到指定分支。

    git checkout feature-branch

  • git checkout -b <branch-name>

    创建并切换到新分支。

    git checkout -b new-feature

2. 合并分支

  • git merge <branch-name>

    将指定分支的内容合并到当前分支。

    git merge feature-branch

3. 删除分支

  • git branch -d <branch-name>

    删除本地分支。如果分支未被合并,Git 会阻止删除操作。

    git branch -d feature-branch

  • git branch -D <branch-name>

    强制删除本地分支,无论是否合并。

    git branch -D feature-branch

4. 查看分支

  • git branch

    查看本地分支列表,当前分支会标有 *

    git branch

  • git branch -a

    查看本地和远程的所有分支。

    git branch -a


三、远程仓库操作

1. 查看远程仓库

  • git remote

    查看配置的远程仓库。

    git remote

  • git remote -v

    查看远程仓库的详细信息,包括 fetchpush 的 URL。

    git remote -v

2. 添加远程仓库

  • git remote add <name> <url>

    添加一个新的远程仓库。

    git remote add origin https://github.com/user/repository.git

3. 推送到远程仓库

  • git push <remote> <branch>

    将本地分支推送到远程仓库。

    git push origin main

  • git push -u <remote> <branch>

    推送并设置默认上游分支,以后可以直接用 git push 推送。

    git push -u origin main

4. 拉取远程仓库的变化

  • git pull <remote>

    拉取远程仓库的最新变化并合并到当前分支。

    git pull origin main

  • git fetch <remote>

    从远程仓库拉取最新的变化但不合并。

    git fetch origin


四、标签管理

1. 创建标签

  • git tag <tag-name>

    为当前分支的最新提交创建一个标签。

    git tag v1.0.0

  • git tag -a <tag-name> -m "message"

    创建带有注释的标签。

    git tag -a v1.0.0 -m "Initial release"

2. 查看标签

  • git tag

    查看所有标签。

    git tag

  • git show <tag-name>

    查看指定标签的详细信息。

    git show v1.0.0

3. 推送标签到远程仓库

  • git push <remote> <tag-name>

    将指定标签推送到远程仓库。

    git push origin v1.0.0

  • git push --tags

    推送所有标签到远程仓库。

    git push --tags

4. 删除标签

  • git tag -d <tag-name>

    删除本地标签。

    git tag -d v1.0.0

  • git push <remote> --delete <tag-name>

    删除远程仓库的标签。

    git push origin --delete v1.0.0


五、查看与比较

1. 查看提交差异

  • git diff

    查看工作区与暂存区之间的差异。

    git diff

  • git diff --staged

    查看暂存区与最后一次提交之间的差异。

    git diff --staged

  • git diff <branch1>..<branch2>

    比较两个分支之间的差异。

    git diff main..feature-branch

2. 查看文件历史

  • git log <file>

    查看指定文件的提交历史。

    git log README.md

  • git blame <file>

    查看文件每一行的提交者和修改时间。

    git blame README.md

3. 撤销操作

  • git checkout -- <file>

    撤销工作区中对指定文件的更改。

    git checkout -- README.md

  • git reset HEAD <file>

    取消暂存区中的更改。

    git reset HEAD README.md

  • git revert <commit>

    还原指定提交,并生成一个新的提交。

    git revert 123abc

  • git reset --hard <commit>

    将当前分支重置到指定提交,同时重置工作区和暂存区的状态。

    git reset --hard 123abc


六、暂存与恢复

1. 暂存修改

  • git stash

    暂存当前工作区的修改。

    git stash

  • git stash save "message"

    使用描述信息暂存修改。

    git stash save "WIP: unfinished work"

2. 查看和恢复暂存

  • git stash list

    查看暂存列表。

    git stash list

  • git stash apply

    应用最近一次暂存的内容。

    git stash apply

  • git stash pop

    应用最近一次暂存的内容并删除该暂存。

    git stash pop

  • git stash drop <stash>

    删除指定的暂存。

    git stash drop stash@{0}


七、Git 高级命令

1. 修改最后一次提交

  • git commit --amend

    修改最后一次提交的提交信息或追加更改。

    git commit --amend -m "Updated commit message"

2. Rebase 操作

  • git rebase <branch>

    将当前分支的提交应用到指定分支的基础之上。

    git rebase main

  • git rebase -i <commit>

    交互式 rebase,可以合并、重排、删除历史提交。

    git rebase -i HEAD~3

3. Cherry-pick 操作

  • git cherry-pick <commit>

    将指定提交的更改应用到当前分支。

    git cherry-pick 123abc

4. 变基冲突解决

  • git rebase --continue

    继续进行 rebase,通常在解决冲突后使用。

    git rebase --continue

  • git rebase --abort

    取消当前的 rebase 操作,恢复到 rebase 前的状态。

    git rebase --abort


八、Git 与 GitHub 协作

1. 生成 SSH 密钥

  • ssh-keygen -t rsa -b 4096 -C "your.email@example.com"

    生成 SSH 密钥,用于与 GitHub 进行安全通信。

    ssh-keygen -t rsa -b 4096 -C "your.email@example.com"

2. 添加远程仓库 URL

  • git remote set-url origin <new-url>

    修改现有远程仓库的 URL。

    git remote set-url origin git@github.com:user/repository.git

3. Fork 和 Pull Request

  • Fork 项目

    在 GitHub 上 Fork 你想要参与的项目。

  • git remote add upstream <url>

    为 Fork 的仓库添加上游仓库。

    git remote add upstream https://github.com/original/repository.git

  • git fetch upstream

    获取上游仓库的最新更改。

    git fetch upstream

  • git merge upstream/main

    将上游仓库的更改合并到本地分支。

    git merge upstream/main

  • Pull Request

    在 GitHub 上发起 Pull Request,提交你对原始项目的贡献。


九、总结

掌握 Git 命令是开发人员必备的技能之一,从项目初始化、分支管理、远程协作到高级操作,Git 提供了丰富的工具来帮助开发者高效管理代码。本文介绍的命令只是 Git 功能的一部分,通过不断实践和探索,你将能够更灵活地运用 Git 进行版本控制和团队协作。


网站公告

今日签到

点亮在社区的每一天
去签到