Git命令集合
基础命令
初始化仓库
git init
初始化一个新的 Git 仓库。
克隆仓库
git clone <repository_url>
克隆一个远程仓库到本地。
查看状态
git status
查看工作目录和暂存区的状态。
添加文件到暂存区
git add <file_name>
git add .
添加指定文件或所有文件到暂存区。
提交更改
git commit -m "commit message"
提交暂存区的更改并附带提交信息。
分支操作
查看分支
git branch
列出所有本地分支并且查看当前分支。
创建新分支
git branch <branch_name>
创建一个新的本地分支。
切换分支
git checkout <branch_name>
切换到指定的分支。
创建并切换到新分支
git checkout -b <branch_name>
创建一个新的分支并切换到该分支。
删除分支
git branch -d <branch_name>
删除指定的本地分支。
合并和变基
合并分支
git merge <branch_name>
将指定分支合并到当前分支。
变基操作
git rebase <branch_name>
变基当前分支到指定分支的基础上。
远程操作
添加远程仓库
git remote add <remote_name> <remote_url>
添加一个新的远程仓库。
查看远程仓库
git remote -v
查看所有远程仓库及其 URL。
推送到远程仓库
git push <remote_name> <branch_name>
推送本地分支到远程仓库。
从远程仓库拉取
git pull <remote_name> <branch_name>
获取远程更新
git fetch <remote_name>
从远程仓库获取更新,但不合并到当前分支
暂存和恢复
暂存更改
git stash
将当前未提交的更改存入栈中。
查看暂存的更改
git stash list
查看所有暂存的更改。
应用暂存的更改
git stash apply
应用最近一次暂存的更改。
应用并移除暂存的更改
git stash pop
应用最近一次暂存的更改并从栈中移除
查看历史和差异
查看提交历史
git log
查看提交日志。
查看简洁的提交历史
git log --oneline
以单行显示每个提交的简洁历史。
查看文件的更改
git diff <file_name>
查看工作目录和暂存区之间的差异。
查看暂存区和最新提交之间的差异
git diff --cached
回滚和恢复
回滚到上一个提交
git revert HEAD
创建一个新的提交,用于撤销上一个提交的更改。
重置到指定提交
git reset --hard <commit_hash>
将当前分支重置到指定的提交,丢弃之后的所有更改。
实例
例1:
假设你在 one 分支上进行了开发,现在想将这些更改推送到远程的 two 分支:
1.确保更改已提交:
git add .
git commit -m "Your commit message"
2.直接推送 one 分支到远程 two 分支:
git push origin one:two
这条命令的意思是将本地的 one 分支推送到远程仓库的 two 分支。
例2:
如果远程仓库确实有 test-v0.1.0 分支,并且你想从远程分支拉取更新到本地分支,你需要指定远程仓库名称(通常是 origin)和远程分支名。可以使用以下命令:
git pull origin test-v0.1.0
这个命令会将远程分支 test-v0.1.0 的更改拉取到你当前的本地分支 hyl_dev。确保你当前在 hyl_dev 分支上:
git checkout hyl_dev
git pull origin test-v0.1.0
这样可以检查是否有冲突,并在必要时解决冲突后再推送到 test 分支。
如果 test-v0.1.0 不是默认远程仓库(通常是 origin),你需要替换 origin 为对应的远程仓库名称。
解决冲突
解决 Git 冲突的步骤可以分为以下几步:
-
查看冲突文件:
git status这将列出有冲突的文件。
-
手动解决冲突: 打开每个冲突文件,查看冲突部分,这些部分会标记为:
<<<<<<< HEAD # 你当前分支中的更改 ======= # 从远程分支拉取的更改 >>>>>>> branch-name -
编辑冲突文件: 根据需要手动编辑文件,保留需要的更改,删除冲突标记(
<<<<<<<,=======,>>>>>>>)。 -
标记冲突已解决: 解决每个冲突后,标记文件为已解决并添加到暂存区:
git add <file_name> 例如: git add .env git add src/api/index.ts git add src/api/modules/user_list/interface.ts git add src/store/modules/user_list.ts git add src/views/user/list/index.vue git add yarn.lock -
完成合并: 一旦所有冲突都解决并添加到暂存区,完成合并:
git commit -m "Resolved merge conflicts and applied code formatting" -
推送更改: 解决冲突并提交更改后,将更改推送到远程分支:
git push origin hyl_dev -
如果想推到远程仓库中的其他分支,或者默认分支的话就需要
git push origin hyl_dev:test-v0.1.0
示例
假设你有一个冲突文件 example.txt,它看起来像这样:
<<<<<<< HEAD
这是当前分支的内容。
=======
这是远程分支的内容。
>>>>>>> test-v0.1.0
编辑文件以解决冲突,比如:
这是合并后的内容。
然后运行:
git add example.txt
git commit
使用图形化工具
如果你觉得手动解决冲突太麻烦,可以使用一些图形化工具来帮助你解决冲突,例如:
- Sourcetree
- GitKraken
- Visual Studio Code(自带 Git 冲突解决功能)
这些工具可以直观地展示冲突部分,并提供方便的界面来解决冲突。
如果你还有其他问题,随时问我。