💻
Today I Learned
  • README
  • analytics
    • convert json perline to panads data frame
    • hierarchical data format
    • pandas format custom date in data frame
  • bash
    • bash forloop
    • parameter expansion
    • prompt confirmation in bash
  • db
    • disabling foreign key when importing dump
    • postgres add object to jsonb array from the same column
    • postgres audit log trigger
    • postgres naming trigger
    • postgres rename enum
    • postgres reset sequence after import
    • postgres skip table from restore
    • set a column with value from different table
  • dgraph
    • dgraph docker compose whitelist ip
  • docker
    • docker compose make sure postgres is ready before starting other service
  • fish
    • edit last command in editor
  • git
    • checkout last branch
    • different between two dots and three
    • force fail commit on master
    • git finish helper script delete current branch and update master
    • git mergetool and diff with p4merge
    • global gitignore file
    • intellij as diff and mergetool
    • push only current branch
    • reset email multiple commit
    • sign commit with pgp
    • worktree switching branch without stash
  • go
    • default math.rand.source is thread save while rand.new source is not
    • deploying go to a vpn ubuntu server with github and ssl
  • k8s
    • copy file to pod
    • getting cpu and memory usage for container
    • how cert manager and letsencrypt challenge works
    • kubernetes resource short name
    • scale deployment
    • view secret
  • linux
    • boot zfs root filesystem on grub
    • clearing up swap space
    • connect bluetooth device from cli
    • get full argument from a process
    • merge multiple pdf into a single file
    • removing old kernel
    • symbolic vs hard link
    • zfs auto snapshot
    • zfs external backup drive with snapshot and encryption
  • net
    • dnssec
    • html form submit to different action depending on properties
    • ldap list users
  • osx
    • checksum a file from a url
    • cluster ssh in iterm2 with i2cssh
    • list open port
    • manage clipboard easily with jumpcut
    • pipe output to clipboard with pbcopy and pbpaste
    • show hidden file
    • sign application with self certificate
    • starting program on startup with login items
  • python
    • count frequency with lambda
    • dijkstra algorithm shortest path
    • double slash arithmetic operator
    • min and max of dict values
    • python3 match case
    • reduce and opeator
  • react
    • react named export vs default export
    • react useeffect
    • react.useref
  • unix
    • bulk renaming multiple file
    • convert pdf to text using ocr
    • diff output of 2 command
    • encryption with gpg
    • extend letsencrypt certificate with dns challenge
    • ffmpeg monitor and restart stream when it hung or stall
    • file size older than x days
    • filtering json with jq
    • find lines that matches on 2 different sorted file
    • find out what is using swap
    • fish environment variables from 1password
    • fix gpg warning unsafe permissions on homedir
    • formatting or parse json in command line
    • get all line except n last one
    • grep print only matched
    • grep using input file as pattern to search other file
    • jq counting lenght of an array
    • jq extracting properties to arrays from json row line
    • keep n recent item in folder
    • open last command in the editor with fc
    • parsing epoch timestamp to date
    • pbcopy alternative for copying to clipboard
    • process pipe operator
    • record a web stream to youtube
    • regex for validating password
    • rename tmux window
    • repeat content of text x time
    • replacing last command and execute it
    • reusing last command argument
    • send slack message from command line
    • sending curl post with file
    • sort file inline
    • specify compression level in tar gzip
    • zsh ctrl p same behavior as up arrow
  • vim
    • paste yanked text on command buffer
  • web
    • this article is published to dev to with github action
Powered by GitBook
On this page

Was this helpful?

  1. git

push only current branch

Git has multiple strategy whey you do git push

Before git 2.0, it was matching meaning that it will push all the local branch that has the same name as remote. I don't like this because most of the time i just want to push my current branch and avoid mistakenly local branches that is not ready to be push yet.

After 2.0 it changes to simple it will push the current branch to upstream with added safety so that it will refuse to push if the upstream branch name is different from the local one. This is ok but when you created a new branch, it will ask you to explicitly set the upstream branch first.

My workflow is my local branch is going to be always the same name as the remote, and if not exist it should be created automatically. this is why i like the current strategy. To change this use

git config --global push.default current

from the git documentation

push.default

Defines the action git push should take if no refspec is given (whether from the command-line, config, or elsewhere). Different values are well-suited for specific workflows; for instance, in a purely central workflow (i.e. the fetch source is equal to the push destination), upstream is probably what you want. Possible values are:

  • nothing - do not push anything (error out) unless a refspec is given. This is primarily meant for people who want to avoid mistakes by always being explicit.

  • current - push the current branch to update a branch with the same name on the receiving end. Works in both central and non-central workflows.

  • upstream - push the current branch back to the branch whose changes are usually integrated into the current branch (which is called @{upstream}). This mode only makes sense if you are pushing to the same repository you would normally pull from (i.e. central workflow).

  • tracking - This is a deprecated synonym for upstream.

  • simple - in centralized workflow, work like upstream with an added safety to refuse to push if the upstream branch’s name is different from the local one.

    When pushing to a remote that is different from the remote you normally pull from, work as current. This is the safest option and is suited for beginners.

    This mode has become the default in Git 2.0.

  • matching - push all branches having the same name on both ends. This makes the repository you are pushing to remember the set of branches that will be pushed out (e.g. if you always push maint and master there and no other branches, the repository you push to will have these two branches, and your local maint and master will be pushed there).

    To use this mode effectively, you have to make sure all the branches you would push out are ready to be pushed out before running git push, as the whole point of this mode is to allow you to push all of the branches in one go. If you usually finish work on only one branch and push out the result, while other branches are unfinished, this mode is not for you. Also this mode is not suitable for pushing into a shared central repository, as other people may add new branches there, or update the tip of existing branches outside your control.

    This used to be the default, but not since Git 2.0 (simple is the new default).

Previousintellij as diff and mergetoolNextreset email multiple commit

Last updated 3 years ago

Was this helpful?