Git常用命令积累

常用命令

  • git pull <远程主机名> <远程分支名>:<本地分支名>

git pull的作用是:取回远程主机某个分支的更新,再与本地指定分支合并。

如果远程分支是与当前分支合并,则<本地分支名>可以省略,即常见的

1
$ git pull origin master
  • git push <远程主机名> <本地分支名>:<远程分支名>

分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>

如果省略<远程分支名>,则表示将本地分支推送与之同名的远程分支。如果远程分支不存在,则会被新建。即常见的

1
$ git push origin master
  • 查看分支的追踪关系
1
2
3
4
$ git branch -vv

master aabfcc771 [origin/master] [delete]ignore my own test folder
* dev eae63c511 [inside/master] params: release feature
  • 配置用户名和邮箱

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //全局配置
    $ git config --global user.name "xxx"
    $ git config --global user.email "[email protected]"

    //清除配置
    $ git config --unset --global user.name
    $ git config --unset --global user.email

    //查看配置
    $ git config --list
  • 修改最近一次的commit message:

    1
    git commit --amend //会进入一个编辑器,可以对最近一次的commit message进行修改
  • 丢弃掉test.txt文件在工作区的修改:

    1
    git checkout -- test.txt
  • 切换到本地的dev分支:

    1
    git checkout dev
  • dev分支上的指定文件./main.go合并到当前分支中:

    1
    2
    $ git checkout dev ./main.go 
    //在当前分支运行该命令
  • 撤销版本号为fde6085a的提交,这会完全撤销fde6085a的改动,在本地产生一次撤销改动的commit,将这个commit push上去即可完成回退全过程:

    1
    2
    git revert fde6085a
    git push origin master
  • 拉取远程test分支,并在本地建立test分支以跟踪远程的test分支:

    1
    git checkout origin/test -b test
  • 在与别人协作时,想将远程仓库originmaster分支,完全回滚到fde6085a版本,即HEAD ~ fde6085a之间的提交全部废除。

    1
    2
    $ git reset fde6085a
    $ git push -f origin master

    gitlab默认不允许向protected分支强制push,需要在页面上将该分支设为unprotected

    当其他合作者想应用该更改时,需要先将本地代码回退到更早的版本,比如a35de69c版本,然后再git pull拉取最新代码

    1
    2
    $ git reset a35de69c
    $ git pull origin master

参考链接