git
总结表格
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
2git stash # 保存当前未提交的更改
git stash pop # 恢复上次 stash 的内容**
git reset
**:回退到某个提交,可以用于取消提交、回到之前的状态。1
2
3git 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 通过自动合并,简化了工作流程。这使得你可以一步到位地更新本地分支至远程仓库的最新状态,但同时也增加了因自动合并可能出现冲突的风险。