| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- .. eyefall post example, created by `ablog start` on Jan 25, 2021.
- Daily git usage
- ===================
- .. post:: Jan 30, 2021
- :tags: git
- :category: notes
- Fetch tags from remote repository
- ----------------------------------
- .. code-block:: shell
- $git fetch --all --tags
- Checkout a tag as a branch
- ----------------------------
- .. code-block:: shell
- $git checkout tags/<tag_name> -b <new_branch_name>
- Ignore ^M as a newline when execute 'git diff'
- -----------------------------------------------
- .. code-block:: shell
- $git config --global core.autocrlf true
- 查看指定文件修改历史
- -------------------------
- .. code-block:: shell
- $git log --pretty=oneline [--oneline] <filename>
- 查看单次提交详情
- ----------------------------
- .. code-block:: shell
- $git show <commit>
- 撤销 git add
- ------------------------
- .. code-block:: shell
- $git reset HEAD
- $git reset HEAD <filename>
- $git reset HEAD <path>
- $git rm --cached <filename>
- 撤销 commit (没 push)
- -----------------------------
- .. code-block:: shell
- $git reset --soft HEAD^
- # 如果撤销 2 次 commit
- $git reset --soft HEAD~2
- # 其他参数
- --mixed 为默认参数,不删除工作空间代码改动,撤销 commit,并撤销 add
- # $git reset --mixed HEAD~2 == $git reset HEAD~2
- --soft 不删除工作空间代码改动,撤销 commit, 不撤销 add
- --hard 删除工作空间代码改动,撤销 commit,撤销 add
- 删除若干 commit
- ---------------
- `refer
- <https://www.clock.co.uk/insight/deleting-a-git-commit>`_.
- rebase 远程分支
- ---------------------------
- 假设情景如下: 有一些本地分支,其中 master 是用来同步的主分支
- 对应自己有一个远程仓库 origin, origin 是 clone 自另一个仓库
- 假设地址在 https://github.com/a/b.git. 现在需要拉取原始仓库的更新
- .. code-block:: shell
-
- $git remote add upstream https://github.com/a/b.git
- $git fetch upstream
- $git checkout master
- $git rebase upstream/master
- $git push -f origin master
- remove untracked files
- -----------------------
- .. code-block:: shell
- $git clean -d -n # dry run
- $git clean -d -f # remove untracked files
- $git clean -d -i # interactive mode
- $git clean -d -f <folder> # remove untracked files in folder
- $git clean -d -f -x # ignore files included.
|