常用git命令

  1. 查看状态
    1
    git status
  2. 勾选文件
  • 指定路径的话可以勾选修改和新增的(不在版本库中的)文件
    1
    git add README.md src/js/test.js
  • 在当前目录及其下级目录内勾选文件
    1
    git add .
  • 勾选所有修改和新增的文件
    1
    git add -A / git add --all
  1. 提交
    1
    git commit -m 'init'
    如果只有修改文件,没有新增文件,可以将勾选和提交合并到一起操作,不推荐使用。
    1
    git commit -am 'init'
  2. 拉取
    1
    git pull
  3. 推送
    1
    git push
  4. 放弃更改
    1
    git checkout READM.md
  5. 版本回退
  • git reset: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。
    1
    2
    3
    4
    git log // 查看版本号列表
    git reset --hard 【目标版本号】
    git log // 查看当前版本指向
    git push -f // 提交更改
    如果想保留之前的内容,可以使用--soft
    1
    2
    git reset --soft HEAD^ // 回退到前一个版本,保留文件
    git reset --soft 【目标版本号】 // 回退到目标版本,保留文件
  • git revert: 将某次的版本回退,它之后的版本会被保留。
    1
    2
    3
    4
    git log
    git revert -n 【目标版本号】
    git commit -m 'revert add text.txt' // 将修改提交
    git push
  1. 修改commit注释
    1
    git commit --amend // 此时会进入默认vim编辑器,修改注释完毕后保存就好了
  2. 清除不在版本库内的新增文件
    1
    git clean -f -d
  3. 分支
    1
    2
    3
    4
    git checkout -b feature/test // 本地新增分支feature/test
    git checkout feature/test // 切换到分支feature/test
    git checkout --track origin/master // 检出远程分支
    git merge A // 将A分支合并到当前分支
  4. 查看差异
  • 比较工作区和暂存区test.js的差异
    1
    git diff test.js
  • 对比两次提交(分支、标签)的修改
    1
    git diff develop..master

其它

  1. 配置提交者信息

    1
    2
    git config -global user.name a
    git config -global user.email xxx@qq.com

    如果想为不同项目配置不同的信息,可以不加global,在该项目下执行上述语句。

  2. 为已提交的版本修改committer和author
    假设之前commit时候author和committer为”a”,改为”b”,邮箱改为”xxx@qq.com

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    git filter-branch -f --env-filter '

    an="$GIT_AUTHOR_NAME"
    am="$GIT_AUTHOR_EMAIL"
    cn="$GIT_COMMITTER_NAME"
    cm="$GIT_COMMITTER_EMAIL"

    if [ "$GIT_COMMITTER_NAME" = "a" ]
    then
    cn="b"
    cm="xxx@qq.com"
    fi
    if [ "$GIT_AUTHOR_NAME" = "a" ]
    then
    an="b"
    am="xxx@qq.com"
    fi

    export GIT_AUTHOR_NAME="$an"
    export GIT_AUTHOR_EMAIL="$am"
    export GIT_COMMITTER_NAME="$cn"
    export GIT_COMMITTER_EMAIL="$cm"
    '

    推送到所有版本上

    1
    git push --force --tags origin 'refs/heads/*'
感谢您的阅读,本文由 Astar 版权所有。如若转载,请注明出处:Astar(http://example.com/2022/03/25/%E5%B8%B8%E7%94%A8git%E5%91%BD%E4%BB%A4/
css样式没生效问题排查