Git#

Tag#

1. create & push tag to remote branch#

$ git tag {tag_name}
$ git push origin {tag_name}

2. delete local & remote tag#

$ git tag -d {tag_name}
$ git push origin --delete {tag_name}

引用: 第18話 便利なgit tagの使い方!コミットにタグをつけて管理しやすくしよう【連載】マンガでわかるGit ~コマンド編~

3. synchronize branch list#

The -p flag means “prune”. After fetching, branches which no longer exist on the remote will be deleted.

$ git fetch -p

Branch#

1. change local branch name#

$ git branch -m {old_branch_name} {new_branch_name}
// change current branch name
$ git branch -m {new_branch_name}

2. change remote branch name#

In fact, there is no change regarding the remote branch name.
It’s just to create a new branch with the same “git log”, and then delete old remote branch.

$ git branch -m {old_branch_name} {new_branch_name}
$ git push -u origin {current_branch_name}
$ git push origin :{old_branch_name}

Example
input-1:

 git branch -m feature-tree master
❯ git push -u origin master

output-1:

Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: 
remote: Create a pull request for 'master' on GitHub by visiting:
remote:      https://github.com/motoish/self-notes/pull/new/master
remote: 
To github.com:motoish/self-notes.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

input-2:

 git push origin :feature-tree 

output-2:

To github.com:motoish/self-notes.git
 - [deleted]         feature-tree

3. pull remote branch#

$ git branch -a
$ git checkout {the_same_branchName_with_origin}

Tip

Example

 git branch
* main
❯ git branch -a
* main
  remotes/origin/HEAD -> origin/main
  remotes/origin/feb
  remotes/origin/main
  remotes/origin/master
❯ git checkout feb
Switched to a new branch 'feb'
Branch 'feb' set up to track remote branch 'feb' from 'origin'.
❯ git branch
* feb
  main

Clone#

1. clone from specific branch#

$ git clone -b {branch_name} https://...{repository_address}...

Rebase#

1. rebase commits(squash) or change commit message(reword)#

$ git rebase -i HEAD~{n}
< edit commits to drop, squash, fixup.. >
< edit commit messages >
$ git push origin {branch} -f

Reset#

1. reset HEAD, index and working tree#

$ git reset --hard HEAD^

Fetch#

1. Update local branch forcefully#

$ git fetch origin master
$ git reset --hard origin/master

2. Fech all remote branches#

$ git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
$ git fetch --all
$ git pull --all

Stash#

1. Stash the work#

$ git stash

2. Apply stashes#

$ git stash apply

3. Create a branch from a stash#

$ git stash branch {branch_name}