当前位置: 首页 > news >正文

git命令常用指南

分支

查看分支
git branch创建分支
git branch 分支名切换分支
git checkout 分支名创建并切换分支
git checkout -b 分支名将新文件合并到 master 上
先切换到 master 上,再执行:
git merge 分支名删除分支
git branch -d 分支名

日志

查看提交日志:
git log
查看信息优化:
git log --pretty=online --abbrev-commit --all --graph
撤回到原来状态:
git reset --hard commitID
(可以回到任何状态)
若不慎 clear 之后丢失了 commitID,可以利用 git reflog 还原以往的提交记录
忽略某些文件:
创建 .gitignore 文件,添加需要忽略的文件后缀名(例如 *后缀名)

在本地新建一个文件夹,克隆并关联git仓库

初始化本地仓库
git init设置远程仓库 URL(使用 SSH over 443)
git remote add origin ssh://git@ssh.github.com:443/Westredtomato/aTestGitPractice.git检查远程 URL
git remote -v删除现有的 origin
git remote remove origin克隆时直接指定分支
git clone -b <分支名> <仓库URL>

在文件夹里新增文件夹,如何把新增的文件夹同步更新到git仓库的main分支?

进入已经克隆下来的那个git仓库文件夹。

检查状态,会显示出所有未被跟踪的文件(`untracked files`)和已修改但未暂存的文件。
git status添加到暂存区
git add .
git add your-new-folder/再次查看状态,会看到文件夹变成了绿色,表示已被添加到暂存区
git status提交更改
git commit -m "Initial commit"推送到推送到远程仓库的分支
如果是第一次推送 main 分支,可能会需要这样:
git push -u origin master
之后再次推送,只需要简单的:
git push

之前在一个分支上传了项目文件夹,现在项目文件夹代码有更新,怎么同步到分支上

添加更改到暂存区与提交
git add
git commit -m "提交信息"推送到远程分支
git push origin <分支名>
- 如果远程分支不存在,Git 通常会提示你先创建它,或者你可以使用 `git push -u origin <分支名>` 来推送并同时建立本地分支与远程分支的追踪关系。处理冲突(!!!先拉取再推送)
- 如果在推送前,远程分支已经有了你本地没有的新提交,直接git push可能会被拒绝
- 这时,拉取远程分支的最新更改到本地
git pull origin <分支名>
并在本地**解决可能出现的合并冲突**(如果有的话),再次提交,然后推送

⚠️ 重要提示:

  • 确保你在正确的分支上:在执行这些操作前,最好先用
  • .gitignore:如果你的新文件夹里有配置文件、日志、依赖包(如 node_modules)等不希望上传到GitHub的文件,请记得先把它们加入 .gitignore 文件,然后再执行 git add,否则这些文件也会被上传。

⚠️ 同步代码的注意事项

  • 确认分支:执行操作前,务必确认当前所在的本地的分支( git branch), 如果不是,使用 git checkout <分支名>。
  • 先拉取再推送:在推送本地更改之前,先执行 git pull 拉取远程最新更改

🤝 处理多人协作与分支同步

如果你的项目是多人协作,且你希望同步的是他人仓库(例如 Fork 的仓库)的更新到你的仓库分支,那么流程会有所不同:

  1. 添加上游仓库为远程源:使用 git remote add upstream <原仓库URL> 添加原始仓库为远程源(通常命名为 upstream)。
  2. 获取上游仓库的更新:执行 git fetch upstream 获取原始仓库的最新提交记录。
  3. 合并更新到本地分支:切换到你的本地目标分支(如 mainmaster),然后执行 git merge upstream/main(假设原始仓库的主分支叫 main)将更新合并到你的本地分支。
  4. 推送到你的远程仓库:最后执行 git push origin <你的分支名> 将更新推送到你 GitHub 上的仓库分支。
http://www.xdnf.cn/news/1456165.html

相关文章:

  • openEuler2403安装部署Kafbat
  • 用遗传算法破解一元函数最大值问题:从原理到 MATLAB 实现
  • 关于多Agent协作框架的讨论:以产品经理工作流为例对比Sub Agent与AutoGen
  • 标注工具labelimg使用简介
  • 02-Media-4-mp4muxer.py 录制视频并保存为MP4文件的示例
  • 员工离职导致研发文档遗失的原因与防范方法
  • emmc擦写寿命-分区能拯救系统盘吗?
  • 日本移动应用市场营销分析:娱乐和金融应用增长强劲,游戏类广告支出最高!
  • Process Explorer 学习笔记(第三章3.1.2):管理权利与提权机制解析)
  • 高级RAG策略学习(二)——自适应检索系统原理讲解
  • 【第四章:大模型(LLM)】10.微调方法与实战-(3)P-tuning v2
  • 机器学习如何精准预测高值
  • JavaEE 进阶第二期:开启前端入门之旅(二)
  • 《A Study of Probabilistic Password Models》(IEEE SP 2014)——论文阅读
  • 随时随地写代码:Jupyter Notebook+cpolar让远程开发像在本地一样流畅
  • java面试中经常会问到的Redis问题有哪些(基础版)
  • Nano-banana 模型对接教程:最懂创作者的 AI 模型,比GPT-4o还强!
  • Redis(43)Redis哨兵(Sentinel)是什么?
  • 【OpenHarmony文件管理子系统】文件访问接口解析
  • 【笔记】Software Engineering at Google
  • Java Stream 流式操作举例
  • 深度学习篇---SENet
  • AI安全必修课:模型偏见检测与缓解实战
  • 使用 Sentry 为 PHP 和 Web 移动小程序提供多平台错误监控
  • 温湿度监控的科技之处是能够将样本的运行数据以数字化的方式展现在管理者面前吗?
  • UE5 UAT
  • iSCSI IP-SAN 部署实战
  • SMARTGRAPHQA —— 基于多模态大模型的PDF 转 Markdown方法和基于大模型格式校正方法
  • 滑动窗口题目:水果成篮
  • C 盘清理技巧分享:释放磁盘空间,提升系统性能