AI 资讯
Why git pull --rebase should probably be your default
Most developers run git pull dozens of times a week without thinking about it. And most of the time, it works. Then one day you open a PR and the reviewer says "can you clean up the merge commits?" You look at your branch and see three "Merge branch 'main' into feature/login" commits scattered through history. The feature itself is 5 commits. The log is a mess. That mess comes from one decision: using git pull instead of git pull --rebase . Here's what's actually happening, and why the rebase variant produces cleaner history for teams. The setup: diverged history You're working on feature/login . You commit two changes locally ( X , Y ). Meanwhile, your teammate pushes two commits to main ( C , D ). Your branch and main have now diverged . Neither is a strict superset of the other. Git needs to reconcile them when you pull. Shared history: A → B Your local: A → B → X → Y (you added X, Y) Remote main: A → B → C → D (teammate added C, D) Git has two strategies for this reconciliation. Strategy 1: git pull (merge) A plain git pull creates a merge commit that joins your local history with the remote. Your commits and the remote's commits both appear in the log, connected by a merge node. The git log reads: M Merge branch 'main' into feature/login D fix: timeout on slow connections Y feat: client-side validation C chore: upgrade eslint X feat: login form B (shared) A (shared) This is honest history — it records exactly what happened: parallel development that was joined at a specific point. But it's also noisy history — the merge commit has no meaningful changes, and the log interleaves commits that weren't conceptually related. Strategy 2: git pull --rebase With --rebase , Git takes a different approach. It: Temporarily sets aside your local commits ( X , Y ) Fast-forwards your branch to the tip of the remote ( D ) Replays your commits on top, one by one, creating new commits ( X' , Y' ) The git log reads: Y' feat: client-side validation X' feat: login form D fix: timeo
AI 资讯
GitHub Copilot Desktop App Targets Parallel Agentic Workflows
GitHub has introduced the GitHub Copilot app, a desktop control centre for agent-native development that aims to keep engineers in charge while AI agents handle more coding work. Mario Rodriguez writes on the GitHub blog that the recent wave of coding agents has brought faster delivery but also "disjointed workflows, more context switching, and too much time spent reviewing agent-generated code". By Matt Saunders
AI 资讯
Comment orchestrer un double déploiement automatique sur Vercel & GitHub Pages avec GitHub Actions
Introduction Dans le cadre de mon apprentissage des pratiques DevOps modernes, j’ai conçu et implémenté un pipeline CI/CD (Continuous Integration / Continuous Deployment) capable de déployer automatiquement une application web frontend sur deux environnements de production distincts : Vercel et GitHub Pages . Cette mission constitue une application concrète des concepts fondamentaux du DevOps, notamment l’automatisation des processus, la réduction des interventions manuelles et la mise en place d’une chaîne de livraison logicielle fiable et reproductible. Tableau comparatif des plateformes Dans ce projet, le déploiement sur les deux plateformes n’est pas un doublon mais une démarche pédagogique et technique délibérée permettant de tester la flexibilité de l'orchestrateur. Voici comment elles se comparent : Critère GitHub Pages Vercel Hébergement Statique uniquement Statique + SSR + Serverless Domaine gratuit username.github.io projet.vercel.app CI/CD intégré Via GitHub Actions Natif + GitHub Actions Performance Bonne Excellente (Edge Network) Previews PR Non Oui (automatique) Gratuit Oui (illimité) Oui (avec limites) Cas d’usage Portfolios, docs Apps React/Next.js, SaaS ⚠️ Le problème du double déploiement : Laisser Vercel en mode automatique génère un conflit critique avec GitHub Actions. Pour éviter que deux builds s'exécutent en parallèle, j'ai désactivé le déploiement natif de Vercel en ajoutant un fichier vercel.json à la racine contenant "git": { "deploymentEnabled": false } . Le pipeline complet — deploy.yml Voici le code source du fichier de configuration de l'orchestrateur GitHub Actions ( .github/workflows/deploy.yml ). Ce script gère séquentiellement l'installation, le build et la publication vers nos deux cibles : name : CI/CD -- Deploy to Vercel & GitHub Pages # Declenchement : uniquement sur push vers main on : push : branches : - main jobs : build-and-deploy : runs-on : ubuntu-latest permissions : contents : write steps : # Etape 1 : Recuperer le code
开源项目
What are git worktrees, and why should I use them?
Git worktrees have been around since 2015, but it wasn't until recently they became popular. Learn what they are, how to use them, and why you might. The post What are git worktrees, and why should I use them? appeared first on The GitHub Blog .
AI 资讯
Building a Kaggle Competition Notification Bot
I built a tool called "kaggle-dingdong" that automatically fetches Kaggle competition information and sends notifications to Email, Slack, and Discord. It runs daily on a schedule via GitHub Actions, and you get notified whenever a new competition is published. https://github.com/asherish/kaggle-dingdong Why I Built This Checking the Kaggle competitions page every day is tedious. Featured competitions in particular have entry deadlines, so missing them means losing the opportunity. While RSS feeds and official notification features exist, I wanted notifications delivered directly to the channels I actually use (Discord and Slack), so I built my own. Tech Stack Python 3.13 uv — Package manager and build tool (by Astral) Kaggle Python SDK v2.0.0 — Fetching competition info GitHub Actions — Automated daily execution at 09:00 UTC pytest — Testing Three notification channels are supported: Channel Method Format Email SMTP HTML (card layout) Slack Incoming Webhook Block Kit Discord Webhook Rich Embed Architecture GitHub Actions (cron: daily at 09:00 UTC) ↓ Fetch competition list via Kaggle API ↓ Filter by conditions in config.json ↓ Compare with sent history to extract unnotified competitions ↓ Send notifications to configured channels ↓ Update sent history (max 200 entries) The project structure is as follows: kaggle-dingdong/ ├── src/kaggle_dingdong/ │ ├── __main__.py # Entry point │ ├── config.py # Configuration loading │ ├── competitions.py # Fetch & filter competitions from Kaggle API │ ├── email_sender.py # Email notifications │ ├── slack_sender.py # Slack notifications │ ├── discord_sender.py # Discord notifications │ └── history.py # Sent history management ├── tests/ # pytest tests ├── config.json # Filter configuration └── .github/workflows/ └── notify.yml # GitHub Actions workflow Implementation Highlights Fetching and Filtering Competitions The Kaggle SDK is used to fetch the competition list. In addition to the default sort order, it also fetches with recentl
AI 资讯
What Recruiters Can't See On My GitHub
What Recruiters Can't See On My GitHub If you spend about 30 seconds looking at my GitHub profile, you might think I'm all over the place. React. Python. Healthcare. AI. Scrapers. Automation. Marketing tools. Job bots. Honestly, that's something I've worried about. I have over 100 repositories. Recruiters can see most of them, but not all of them. Some are private because they're client work. Some are private because they're unfinished. Some are private because they contain ideas I've spent years developing and I'm not quite ready to throw the blueprints onto the internet. From the outside, it can look random. But recently I realized something. All of those projects are solving the same problem. I hate repetitive work. My GitHub is here: https://github.com/ashb4 The Job Application That Broke Me I've applied to thousands of jobs over the years. Thousands. And one thing has always driven me absolutely insane. You upload your resume. Then the company immediately asks you to type your entire resume into fifteen different boxes. Your work history. Your education. Your skills. Everything. The computer already has the information. The resume is right there. Yet somehow I'm sitting on page seven of an application retyping information that already exists. It feels inefficient. It feels stupid. And most of all, it feels like a waste of time. Eventually I got annoyed enough to start building tools to help. Then I Noticed a Pattern At first I thought I was building unrelated projects. A job application helper. A content scheduler. A healthcare platform. An AI framework. A browser automation system. But when I stepped back, I noticed the same motivation behind almost all of them. Every project started with some version of: "There has to be a better way to do this." Take PostPunk. Most people see a social media scheduler. I see hours of repetitive posting that I never want to do again. I like creating content. I do not like manually posting the same content everywhere. So I buil
开源项目
🔥 pola-rs / polars - Extremely fast Query Engine for DataFrames, written in Rust
GitHub热门项目 | Extremely fast Query Engine for DataFrames, written in Rust | Stars: 38,779 | 17 stars today | 语言: Rust
开源项目
🔥 typst / typst - A markup-based typesetting system that is powerful and easy
GitHub热门项目 | A markup-based typesetting system that is powerful and easy to learn. | Stars: 54,316 | 75 stars today | 语言: Rust
开源项目
🔥 n0-computer / iroh - IP addresses break, dial keys instead. Modular networking st
GitHub热门项目 | IP addresses break, dial keys instead. Modular networking stack in Rust. | Stars: 9,076 | 326 stars today | 语言: Rust
开源项目
🔥 nocobase / nocobase - NocoBase is an open-source AI + no-code platform for buildin
GitHub热门项目 | NocoBase is an open-source AI + no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability. | Stars: 22,945 | 118 stars today | 语言: TypeScript
开源项目
🔥 desktop / desktop - Focus on what matters instead of fighting with Git.
GitHub热门项目 | Focus on what matters instead of fighting with Git. | Stars: 21,588 | 5 stars today | 语言: TypeScript
开源项目
🔥 Egonex-AI / Understand-Anything - Graphs that teach > graphs that impress. Turn any code into
GitHub热门项目 | Graphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more. | Stars: 61,090 | 1,222 stars today | 语言: TypeScript
开源项目
🔥 Mathieu2301 / TradingView-API - 📈 Get real-time stocks from TradingView
GitHub热门项目 | 📈 Get real-time stocks from TradingView | Stars: 3,638 | 67 stars today | 语言: JavaScript
开源项目
🔥 mochajs / mocha - ☕️ Classic, reliable, trusted test framework for Node.js and
GitHub热门项目 | ☕️ Classic, reliable, trusted test framework for Node.js and the browser | Stars: 22,956 | 12 stars today | 语言: JavaScript
开源项目
🔥 Asabeneh / 30-Days-Of-Python - The 30 Days of Python programming challenge is a step-by-ste
GitHub热门项目 | The 30 Days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than 100 days. Follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw | Stars: 65,108 | 150 stars today | 语言: Python
AI 资讯
Paramount Refused to Air an Ad Criticizing Its Merger With Warner Bros.
The commercial was submitted by the Freedom of the Press Foundation to run during Donald Trump’s UFC event. It criticized the $111 billion merger as a threat to the First Amendment.
AI 资讯
I Asked AI to Write My Commit Messages It Was Embarrassing.
I asked AI to write a commit message for me last week The code change was simple. A bug fix One line,...
AI 资讯
GitHub Copilot CLI for Beginners: Overview of common slash commands
GitHub Copilot CLI for Beginners: Learn how to use slash commands to control your terminal AI agent. The post GitHub Copilot CLI for Beginners: Overview of common slash commands appeared first on The GitHub Blog .
开源项目
🔥 vortex-data / vortex - An extensible, state-of-the-art framework for columnar compr
GitHub热门项目 | An extensible, state-of-the-art framework for columnar compression, and the fastest FOSS columnar file format. Formerly at @spiraldb, now an Incubation Stage project at LFAI&Data, part of the Linux Foundation. | Stars: 3,015 | 21 stars this week | 语言: Rust
开源项目
🔥 gfx-rs / wgpu - A cross-platform, safe, pure-Rust graphics API.
GitHub热门项目 | A cross-platform, safe, pure-Rust graphics API. | Stars: 17,373 | 12 stars today | 语言: Rust