总结表格

Git 命令 作用描述
git init 初始化一个新的 Git 仓库
git clone <url> 克隆远程仓库
git status 查看当前仓库状态
git add <file> 添加文件到暂存区
git commit -m "<message>" 提交到本地仓库
git push origin master 推送到远程仓库
git pull 拉取远程仓库并合并
git branch 列出分支或创建新分支
git checkout <branch> 切换到指定分支
git merge <branch> 合并指定分支到当前分支
git log 查看提交历史
git diff 显示更改的差异
git stash 暂存当前更改
git reset 回退到某个提交
git remote -v 管理远程仓库
git remote add/seturl origin 添加远程仓库
git tag <tag> 创建标签
git rm <file> 删除文件
git config 设置 Git 配置
git rebase 变基操作,用于整理提交历史
git cherry-pick <commit> 选择特定提交并应用到当前分支

git commit -a 命令是一个非常实用的 Git 命令,它允许你在单个步骤中自动将所有已修改(modified)和已删除(deleted)的文件加入暂存区,并进行提交

git ls-files
这个命令会列出所有当前被 Git 追踪的文件

git status
主要用于显示工作目录和暂存区的状态(哪些文件被修改了、哪些文件准备好提交了等),但它也会间接显示哪些文件当前被追踪。已被追踪的文件如果有修改,会在 “Changes to be committed” 或 “Changes not staged for commit” 部分显示

origin是远程仓库的名字,master是本地默认分支名字,main是远程仓库主分支的默认名字。

Run

git config –global user.email “you@example.com
git config –global user.name “Your Name”

to set your account’s default identity.

当本地和远程的 main 分支都有不同的更改时,Git 会拒绝直接推送,以防止丢失数据。

解决方法:先拉取远程的更改并合并(git pull origin main),解决冲突后再推送(git push origin main)。

可以使用 git pull --rebase 代替常规的 pull,以使提交历史更为整洁。

强制推送(--force:在确定不会丢失其他人的工作时,才考虑使用。

暂存和回退

  • **git stash**:保存工作区的更改,以便之后恢复,不会对版本库造成影响。非常适合需要快速切换分支的场景。

    1
    2
    git stash        # 保存当前未提交的更改
    git stash pop # 恢复上次 stash 的内容
  • **git reset**:回退到某个提交,可以用于取消提交、回到之前的状态。

    1
    2
    3
    git reset --soft HEAD~1    # 保留修改的内容,只回退 commit,到上一个提交,更改回到add状态
    git reset --hard HEAD~1 # 丢弃所有更改,彻底回退到上一个提交
    git reset --mixed HEAD~1 #提交记录和暂存区会被回退,但所有修改仍然在工作目录中。

    合并两个推送到远端的提交
    git rebase -i HEAD~n
    git push origin your-branch-name --force使用 –force 选项会覆盖远程分支上的历史,这可能会影响其他正在该分支上工作的协作者

    检查本地提交历史
    git log origin/vim-jedi..vim-jedi

    git fetch

数据更新:git fetch 仅仅下载远程仓库的最新数据到本地仓库,但不会影响你的工作目录或当前分支。它会获取所有的远程更新(包括所有分支的更新),但只是将这些更新存储在本地的远程分支跟踪引用中(例如 origin/master)。
不自动合并:git fetch 不会自动合并或修改你的当前分支。如果你想合并这些变化到你的工作分支,你需要手动执行 git merge 或 git rebase。
git pull
数据更新与合并:git pull 基本上是 git fetch 和 git merge 的结合。当你执行 git pull 时,Git 不仅会下载远程仓库的数据,还会自动尝试将这些数据合并到你当前的工作分支中。
简化工作流:git pull 通过自动合并,简化了工作流程。这使得你可以一步到位地更新本地分支至远程仓库的最新状态,但同时也增加了因自动合并可能出现冲突的风险。

alt text
alt text