Git 常见操作命令

184 阅读4分钟

Git 是一个强大的分布式版本控制系统,广泛用于代码管理和协作开发。以下是一些常用的 Git 操作命令,涵盖了从基本操作到高级功能。

基本命令

1. 初始化仓库

git init

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

2. 克隆远程仓库

git clone <repository-url>

克隆远程仓库到本地。

3. 查看仓库状态

git status

显示当前分支的状态,包括未跟踪文件、暂存区和工作区的更改。

4. 添加文件到暂存区

git add <file>  # 添加单个文件
git add .      # 添加所有文件

将文件添加到暂存区,以准备提交。

5. 提交更改

git commit -m "Commit message"

提交暂存区的更改,并附上提交信息。

6. 查看提交历史

git log

显示当前分支的提交历史。

7. 查看分支

git branch

列出所有分支,当前分支会有一个 * 标记。

8. 创建新分支

git branch <branch-name>

创建一个新分支。

9. 切换分支

git checkout <branch-name>

切换到指定分支。

10. 合并分支

git merge <branch-name>

将指定分支合并到当前分支。

11. 删除分支

git branch -d <branch-name>  # 删除本地分支

删除指定的本地分支。

12. 远程操作

git remote add origin <repository-url>
git remote -v  # 查看远程仓库
git push origin <branch-name>  # 推送分支到远程仓库
git fetch origin  # 获取远程仓库的更新
git pull origin <branch-name>  # 从远程仓库拉取并合并分支

高级命令

1. 暂存和恢复工作现场

git stash  # 暂存当前工作现场
git stash pop  # 恢复暂存的工作现场

保存当前工作现场,以便可以在其他分支上工作,之后恢复这些更改。

2. 查看远程仓库

git remote -v

列出所有远程仓库及其 URL。

3. 设置全局配置

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

设置 Git 的全局用户名和电子邮件。

4. 查看差异

git diff <branch-or-commit>  # 查看不同分支或提交之间的差异
git diff --staged  # 查看已暂存的差异

显示文件的更改。

5. 重置分支

git reset --hard <commit>  # 重置到指定的提交,丢弃所有更改
git reset --soft <commit>  # 重置到指定的提交,保留工作目录的更改

重置当前分支的历史记录。

6. 处理冲突

git mergetool  # 使用图形化工具处理冲突
git diff  # 查看冲突
git add <resolved-file>  # 标记冲突文件为已解决

在合并冲突时,用于解决文件冲突。

7. 查看特定提交的文件

git show <commit>:<file-path>

查看指定提交中的文件内容。

8. 回滚到特定提交

git revert <commit>

生成一个新的提交,撤销指定的提交。

标签操作

1. 创建标签

git tag <tag-name>

在当前提交上创建一个轻量级标签。

2. 查看标签

git tag

列出所有标签。

3. 推送标签到远程

git push origin <tag-name>
git push origin --tags  # 推送所有标签

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

其他命令

1. 查看更改的文件

git status -s

简洁模式下显示已更改的文件。

2. 查看提交图

git log --graph --oneline --decorate --all

查看带图形的提交历史。

3. 删除远程分支

git push origin --delete <branch-name>

删除远程仓库的指定分支。

例子

从头到尾的示例

  1. 初始化仓库并克隆远程仓库

    git init
    git clone https://github.com/user/repo.git
    cd repo
    
  2. 查看分支并创建新分支

    git branch
    git branch new-feature
    
  3. 切换到新分支

    git checkout new-feature
    
  4. 进行更改并提交

    echo "Hello World" > hello.txt
    git add hello.txt
    git commit -m "Add hello.txt"
    
  5. 合并分支

    git checkout main
    git merge new-feature
    
  6. 推送到远程仓库

    git push origin main
    

问题处理 (持续更新)

  1. 重置本地仓库

    git fetch 会更新远程引用,而 git reset --hard 会将本地仓库重置到远程仓库的最新状态;使用 git pull 命令带上 --force 参数可以强制覆盖本地更改。

    git fetch origin
    git reset --hard origin/develop
    

    git pull origin develop --force
    

通过这些命令,你可以高效地进行代码管理和协作开发。记得根据需要选择合适的命令,并注意备份和分支管理,以免数据丢失或影响其他开发者的工作。