测试开发之源码篇-Git常用命令整理
原创- 2023-05-30 10:00:00
- 1045
本文列出了Git的一些常用命令,有兴趣的读者可加到浏览器书签,以备日后检索使用。
基本命令
# 设置代码提交者的用户名 git config --global user.name "chenqi" # 设置代码提交者的邮箱 git config --global user.email "chenqi@deeptest.com" # 克隆代码 git clone https://gitee.com/ngtesting/ci_test_pytest.git # 添加文件到版本库 git add test.txt # 提交文件到版本库 git commit -m "update files" # 推送文件到远程仓库 git push
分支操作
# 查看本地分支 git branch # 查看远程分支 git branch -r # 参看分支状态 git branch -v # 创建分支 git branch v1.0 # 切换分支 git checkout v1.0 # 删除本地分支 git branch --delete v1.0 # 删除远程分支 git push origin --delete remote_branch # 设置本地分支的远程分支 git branch --set-upstream-to=origin/remote_branch local_branch
代码回滚
# 重置“全部3个工作区”为Reset节点的內容,其后所有修改将丢失 git reset --hard xxx # 重置的同时,把所有(原节点和Reset节点的)差异都混合到“工作区”中 git reset xxx git reset --mixed xxx # 重置的同时,把所有(原节点和Reset节点的)差异都混合到“暂存区”中 git reset --soft xxx # 反做Undo某个版本的修改 git revert -n xxx
Rebase命令
# 切换到本地master分支 git checkout master # 更新本地master到远程master分支 git pull remote master:master # 切回到开发分支 git checkout dev # Rebase开发分支到最新的master分支 git rebase master
Stash缓冲区命令
# 将当前未提交工作暂存到缓冲区 git stash # 切换到主干修复问题 git checkout master # 完成主干上的修复工作 # 再次切换开发分支 git checkout dev # 从缓冲区中取出前面的工作 git stash pop
Diff命令
# 显示工作区和暂存区的diff信息 git diff # 显示暂存区和版本库的diff信息 git diff --cached # 显示2个提交间的diff信息 git diff commit1 commit2 # 显示2个分支间的diff信息 git diff branch1 branch2 # 显示2个分支指定目录范围的diff信息 git diff branch1 branch2 dir_path # 显示2个分支指定文件的diff信息 git diff branch1 branch2 file_path # 加--stat参数,显示diff摘要信息 git diff branch1 branch2 --stat
代码合并
# 切换/创建开发分支 git checkout dev # 新建文件,加入版本控制 touch readme.md git add readme.md # 提交代码到本地仓库 git commit -m 'add readme' # 推送代码到远程 # -u参数将本地dev分支默认关联到远程origin主机上的dev分支,后续可省略。 git push -u origin dev # 切换到主干 git checkout main # 获取主干最新内容 git pull origin master # 合并开发分支的变更到主干 git merge dev # 推送主干到远程 git push origin main
拉取远程代码
# 从远程获取代码,并合并到本地工作目录 git pull # 获取远程仓库的变更到本地仓库,但不合并当代码到当前工作目录 git fetch
远程仓库
# 查看远程仓库 git remote -v # 添加远程库 git remote add github_project https://github.com/aaronchen2k/ci_test_git.git # 删除远程仓库 git remote rm github_project # 推送到指定远程仓库 git push github_project
强制命令
# 强制覆盖远程 git push origin master --force # 强制覆盖本地 git fetch --all git reset --hard origin/main git pull # 强制覆盖本地,单行 git fetch --all; git reset --hard origin/main; git pull