Git 常见命令及其命令组合

2024-08-22 19:11:46 浏览数 (3)

Git 常见命令及其命令组合

Git 基础命令

初始化仓库

  • git init 案例: 假设你开始一个新项目,首先在项目目录下打开终端,运行 git init 来初始化一个新的 Git 仓库。

查看状态

  • git status 案例: 运行 git status 可以查看当前目录下哪些文件被修改了,哪些文件已经添加到暂存区,哪些文件还没有跟踪。

添加文件

  • git add <file> 案例: 你修改了 README.md 文件,然后运行 git add README.md 将更改添加到暂存区。
  • git add . 案例: 如果你修改了多个文件,可以使用 git add . 将所有修改过的文件添加到暂存区。

提交更改

  • git commit -m "commit message" 案例: 暂存区准备好后,运行 git commit -m "Initial commit" 来提交更改,其中 "Initial commit" 是提交信息。

查看提交历史

  • git log 案例: 运行 git log 查看所有的提交记录,包括提交的作者、时间、以及提交的哈希值。
  • git log --oneline 案例: 如果你想要一个更简洁的视图,可以使用 git log --oneline 来显示每次提交的简短信息。
  • git reset HEAD <file> 案例: 如果你想要撤销 README.md 文件的暂存更改,可以使用 git reset HEAD README.md
  • git checkout -- <file> 案例: 如果你想要撤销 README.md 文件在工作目录中的更改,可以使用 git checkout -- README.md 来丢弃这些更改。

推送与拉取案例演示

推送更改

  • git push 案例: 你完成了本地的一系列更改,并且已经提交。现在你想将这些更改推送到远程仓库,可以运行 git push 命令。
  • git push <remote> <branch> 案例: 假设你正在处理master分支 ,并且想要推送这个分支的更改到远程仓库,你可以运行 git push origin master

拉取更改

  • git pull 案例: 当你想要更新你的本地仓库以包含远程仓库的最新更改时,可以运行 git pull 来拉取并自动合并到当前分支。
  • git pull <remote> <branch> 案例: 如果你想要拉取远程仓库中 origindevelop 分支的更改,可以运行 git pull origin develop

强制推送

  • git push --force 案例: 如果你已经决定重写历史并且远程仓库的某些提交需要被覆盖,你可以使用 git push --force 来强制推送你的更改。
  • git push --force-with-lease 案例: 这是一个更安全的强制推送选项。假设你正在推送到一个多人协作的仓库,使用 git push --force-with-lease 可以避免在远程分支有新提交时覆盖它们。

拉取合并

  • git pull --rebase 案例: 当你想要拉取远程更改并且保持一个干净、线性的提交历史时,可以使用 git pull --rebase。例如,当你在 feature-x 分支工作并想要集成最新的 master 分支更改时,可以运行 git pull --rebase origin master

强制推送注意事项

  • 使用 git push --forcegit push --force-with-lease 时要非常小心,因为这可能会影响其他协作者的更改。

拉取合并与变基

  • 使用 git pull --rebase 可以避免在历史中产生不必要的合并提交,使得项目的历史更加清晰。

拉取合并

  • git pull --rebase: 使用变基的方式拉取远程更改,避免产生合并提交。

分支管理案例

创建分支

  • git branch <branch-name> 案例: 假设你正在 master 分支上工作,想要开始一个新的功能开发。你可以运行 git branch feature-login 来创建一个名为 feature-login 的新分支。
  • git checkout -b <branch-name> 案例: 如果你希望创建新分支并立即切换到该分支,可以使用 git checkout -b feature-login。这将创建 feature-login 分支并自动切换到该分支。

切换分支

  • git checkout <branch-name> 案例: 你已经在 feature-login 分支上工作了一段时间,现在想要切换回 master 分支。运行 git checkout master 即可切换。

删除分支

  • git branch -d <branch-name> 案例: 假设你已经完成了 feature-login 分支的开发并将其合并回 master,现在想要删除这个本地分支。可以使用 git branch -d feature-login
  • git push <remote> --delete <branch-name> 案例: 如果你还想从远程仓库中删除 feature-login 分支,可以运行 git push origin --delete feature-login

查看分支

  • git branch 案例: 运行 git branch 可以查看本地所有分支,其中当前分支会以星号 (*) 标记。
  • git branch -r 案例: 运行 git branch -r 可以显示所有远程分支。
  • git branch -a 案例: 运行 git branch -a 可以显示所有本地和远程分支。

合并分支案例

合并分支

  • git merge <branch-name> 案例: 假设你完成了 feature-login 分支的开发并希望将其合并到 master 分支。首先切换到 master 分支,然后运行 git merge feature-login

合并冲突

  • 案例: 如果在合并过程中出现冲突,Git 会停止合并并让你手动解决。例如:
    1. 运行 git status 查看哪些文件有冲突。
    2. 编辑冲突文件,解决冲突。
    3. 运行 git add <resolved-file> 将解决后的文件添加到暂存区。
    4. 运行 git commit 提交解决冲突后的更改。

变基合并

  • git rebase <branch-name> 案例: 假设你想要将 feature-login 分支的更改应用到最新的 master 分支上,可以使用 git rebase master 命令。
  • git rebase --continue 案例: 如果在变基过程中遇到冲突,解决冲突后,运行 git rebase --continue 继续变基操作。
  • git rebase --abort 案例: 如果变基过程中出现问题,你决定放弃变基,可以使用 git rebase --abort 恢复到变基前的状态。

合并策略

  • git merge --no-ff <branch-name> 案例: 如果你想要保留分支历史,即使 master 分支已经是最新的,也可以使用 git merge --no-ff feature-login 进行非快进合并。

标签管理案例

创建标签

  • git tag <tag-name> 案例: 假设你完成了一个重要的发布版本,可以运行 git tag v1.0 来创建一个轻量标签。
  • git tag -a <tag-name> -m "tag message" 案例: 如果你想要创建一个带注释的标签,可以使用 git tag -a v1.0 -m "Release version 1.0"

推送标签

  • git push <remote> <tag-name> 案例: 运行 git push origin v1.0 将标签推送到远程仓库。
  • git push <remote> --tags 案例: 运行 git push origin --tags 可以推送所有本地标签到远程仓库。

删除标签

  • git tag -d <tag-name> 案例: 如果你想要删除本地标签,可以使用 git tag -d v1.0
  • git push <remote> :refs/tags/<tag-name> 案例: 运行 git push origin :refs/tags/v1.0 可以删除远程仓库中的标签。

远程仓库操作案例

克隆仓库

  • git clone <repository-url> 案例: 运行 git clone https://github.com/user/repo.git 将远程仓库克隆到本地。

远程仓库列表

  • git remote -v 案例: 运行 git remote -v 可以查看远程仓库的详细信息,包括仓库的 URL。

添加远程仓库

  • git remote add <remote-name> <url> 案例: 如果你想要添加一个新的远程仓库,可以使用 git remote add upstream https://github.com/otheruser/repo.git

远程仓库别名

  • git remote rename <old-name> <new-name> 案例: 如果你想要修改远程仓库的别名,可以使用 git remote rename origin new-origin

远程仓库URL

  • git remote set-url <remote-name> <new-url> 案例: 如果远程仓库的 URL 发生变化,可以使用 git remote set-url origin https://github.com/user/new-repo.git 更新 URL。
git

1 人点赞