git常见操作

git常见操作

  1. git log filename

查看提交记录

  1. git log -p filename

可以显示每次提交的diff

  1. 查看某次提交中的某个文件变化,可以直接加上fileName

git show c5e69804bbd9725b5dece57f8cbece4a96b9f80b filename

验证公钥是否配置成功

ssh -T git@github.com

拉取指定tag分支

git clone -b v2.8.1 https://git.oschina.net/oschina/android-app.git

误删文件恢复


git reset HEAD 误删的文件夹或者文件的路径
git checkout 误删的文件夹或者文件的路径

git checkout .

修改了文件想还原回去

git checkout -- aaa.txt # aaa.txt为文件

查看日志

  • 查看日志和文件差异
git log -2 -p

差异

  • 工作区与暂存区的差异
git diff

分支管理

Git创建Develop分支的命令:

  git checkout -b develop master

将Develop分支发布到Master分支的命令:

  # 切换到Master分支
  git checkout master

  # 对Develop分支进行合并
  git merge --no-ff develop
  • 删除本地分支 git branch -D feature-01

  • 删除远端分支或本地分支

  • 关联远端仓库
    git remote add github git@github.com:jiftle/grocery.git

  • 查看远端分支
    git remote -v

# git remote -v
github    git@github.com:jiftle/grocery.git (fetch)
github    git@github.com:jiftle/grocery.git (push)
origin    git@e.coding.net:jiftle/grocery.git (fetch)
origin    git@e.coding.net:jiftle/grocery.git (push)
  • 合并分支

git checkout master

git merge dev

  • 删除远端分支
    git push github --delete home

  • 解除远程仓库
    git remote rm github

标签管理

  • 查看所有的标签 git tag

  • 删除某一个标签 git tag -d tagName

  • 创建带注释的标签 git tag -a tagName -m "annotate"

  • 轻量级标签 git tag tagName

  • 历史提交创建标签 git tag tagName commitId

  • 轻量级标签 git tag tagName

  • 切换到某一个标签 git checkout tagName

  • 推送标签到远程仓库

git push并不会把tag标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。
1.push单个tag,命令格式为:git push origin [tagname]
例如:
git push origin v1.0 #将本地v1.0的tag推送到远端服务器
2.push所有tag,命令格式为:git push [origin] --tags
例如:
git push --tags
或
git push origin --tags

tig文件名中文乱码

chinese font display is not correct in detail windows
git 路径转义
git config --global core.quotepath false

哈哈,我的提问,感谢不知名的好人。

最佳实践

参考文章

git fetch和git pull的概念

可以简单的概括为:git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

作者:打我你肥十斤
链接:https://juejin.cn/post/6844903921794859021

换行符号自动转换

关闭换行符自动转换,windows下的\r\n和linux下的\n,不自动转换

git config --global core.autocrlf false
posted @ 2019-08-22 17:49  jiftle  阅读(386)  评论(0编辑  收藏  举报