Git常用操作
基本概念
-
工作区
:新文件没被 add到暂存区,显示红色 -
暂存区
:进仓库前暂时存放区域,未对本地仓库生效。对暂存区文件修改,显蓝色。第一次创建并 add 到暂存区的文件,由于远程仓库没同步,显绿色(注:存放在".git/index 目录" -
本地仓库
:暂存区 commit代码放入本地仓库,通过 push 推送到远程仓库。(注:存在".git"目录) -
远程仓库
:在前面的话,仓库里都有些什么东西只有你自己知道,但是一旦把本地仓库推到远程仓库后,仓库里有什么东西大家都知道了
初始化仓库
# 1、本地初始化
git init
# 2、从远程拉取
git clone https://github.com/xxxx/xxx.git
查看仓库状态
#查看当前分支状态
git status
查看历史版本
# 查看版本信息
git reflog
# 查看版本详细信息
git log
版本回退
reset
: 强行移除已提交的 commit 并且不留痕迹
git reset --hard commit_id
revert
: 根据 commit 的变更作回退变更(这种方式更适合企业管理,留痕迹)--再重新提交
pycharm 本地比对差异: 右键目标文件-->Git -->show diff
pycharm 跨commit差异比对: 右键目标文件-->Git-->compare with revision
代码提交流程
# 1、添加文件,可以是工程名的下一级开始写路径直到文件名,也可以是* 全部
git add *
# 2、代码提交到缓存区
git commit -m "更新说明"
# 3、以下方案一方案二选其一
# 合并远程分支代码方案一(场一:在此之前有别人提交了代码,需要先合并才能够 push)
git fetch origin #或 git remote update 有的时候需要同步一下远程和本地
git merge origin/远程分支名
#合并远程分支代码方案二
git pull origin 远程分支名
# 4、推送代码
git push origin 本地分支名:远程分支名
- rebase :将本地的多次提交合并为一个
git rebase -i
分支管理
查看分支
git branch #查看本地分支
git branch -v #查看当前分支
git branch -r #查看远程分支
git branch -a #查看所有分支
新增分支
git branch #查看分支
git branch branch_name #创建名称为 branch_name 的分支
git chectout branch_name #切换分支到名称为 branch_name 的分支
git chectout -b branch_name #创建分支 branch_name,并切换到该分支中
git puch origin #本地分支名称:远程分支名称
删除分支
# 1、先切换到其它分支
git checkout branch_name
# 2、删除本地分支
git branch -d branch_name
# 3、如果删除不了可强制删除
git branch -D branch_name
# 4、有必要的情况下,删除远程分支(慎 用)
git push origin --delete branch_name
# 5、再从公用的仓库提取更新的数据
git fetch origin 本地分支名称:远程分支名称
# 6、然后切换到该分支
git checkout branch_name
合并分支
# 1、切换到想要合并的分支a
git checkout branch_a
# 2、合并本地分支 b 到到分支 a 上
git merge branch_b
合并冲突
: Automatic merge failed; fix conflicts and then commit the result.
HEAD所指示的版本(也就是你 master 分支所在的位置,即=所指的上半部分,iss53修改的内容为下半部分)
#冲突后显示
<<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>>> iss53:index.html
解决方案一:
手动解决,删除<<<<<<<
,=======
,>>>>>>>
这些标志,可以仅保留一个分支的修改,git add 命令将其标记为冲突已解决
<div id="footer">
please contact us at email.support@github.com
</div>
远程通道
git remote -v #查看无程通道
# 添加远程通道并命名为 upstream
git remote add upstream http://github.com/xxx/xx.git
# 拉取 upstream 通道的 main 分支代码,然后-r合并到本地代码
git pull -r upstream main
修改作者信息
git commit --amend --author='张三 <xxx@163.com>'
git push --force #强行推送
三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)