git自学总结《Git Pro2》

  1. 初次设置
git config --global user.name "userName"  
git config --global user.email "liuj2@xiaopeng.com"
git config --global core.editor vim
  1. 查看配置名
git config --list
git config user.name //查看用户名配置项
git config user.email //查看用户邮箱配置项
  1. 查看帮助
git help <command>
git help commit
  1. 从暂存区撤出
git reset HEAD <file>
git reset --file
git reset HEAD .  //撤出所有
  1. 从提交库checkout,撤销对文件的 修改
git checkout --file //撤销对工作区的修改,从暂存区恢复
git checkout HEAD --file //撤销对工作区文件的修改,从本地提交恢复
  1. 比较
git diff //比较暂存区和工作区的差异
git diff --cached (staged)//比较暂存区和本地版本库的差异

  1. 利用图形界面比较差异
git difftool //默认vimdiff
git difftool --tool-help //查看支持那些difftool工具
  1. 跳过暂存区直接提交
git commit -a
  1. 删除
//确定删除某文件,且从工作去删除,不加入跟踪
git rm file

//确定删除某文件,且从工作区删除,且该文件删除动作已提交到暂存区
git rm -f file

//从git中删除,但是不从工作区删除,只是不跟踪
git rm --cached 
  1. 重命名
git mv oldName  newName
  1. 查看提交log
git log
git log -p -2 //查看每次提交的差异,可以详细查看每次修改的内容 ,2为最近两次
git log --stat //查看每次提交的差异
git log --pretty=oneline //简要查看每次提交
  1. 查看修改某个详细字段的所有提交
git log -S<Name>查看修改了Name的提交
  1. 提交合并到上一次提交,或者叫修改commit msg
git commit --amend
  1. 查看远程仓库
git remote -v
  1. 添加远程仓库
git remote add origin(remoteName) https://.....git
  1. 拉取远程分支
git fetch
git pull
git pull --rebase

  1. 查看远程仓库的详细信息
git remote show origin<远程仓库名>
  1. 重命名仓库
git remote rename oldName newName
git branch -m old-local-branch new-local-branch
  1. 删除远程仓库
git remote rm origin<仓库名>
  1. 打TAG
git tag//列出tag
git tag -a V4.4.2 -m"some contents about account"
  1. 查看某个tag的详细信息
git tag 
git show tagID
  1. 打轻量级TAG
git tag V4.4.2 // 这种tag没有备注信息
git show V4.4.2只会显示提交信息
  1. 后期打TAG
先git log查看历史
git log
再git tag V4.4.2 commitId
  1. 共享标签
//本地标签没有推上服务器,必须推才能共享
git push origin tagName
git push origin V4.4.2
//或者一次性推所有的tag
git push origin --tags
  1. 检出TAG
git checkout -b newBranchName tagName
  1. 命令的别名
//类似linux命令别名
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.st status
git config --global alias.ustage 'reset HEAD --'
git config --global alias.lasst 'log -l HEAD'
git config --global alias.visual '!gitk'

  1. 新建分支
git branch newBranchName
git checkout -b newBranchName
  1. 查看各个分支的指向
git log --oneline --decorate
  1. 切换分支之前最好pop修改到栈内,或提交
git stash //修改提交到栈内
git stash pop //修改出栈
  1. 删除分支
git branch -d branchName //删除
git branch -D branchName //强制删除
  1. 分支的平行概念
比如有master分支,master分支延伸很长后,  
再基于master分支新建一条dev分支,  
删除master分支并不会删除dev分支所持有的master分支内容,  
两条分支是平行的,都持有master原有的内容。  删除一条分支是删除整条分支,从头指针开始删。  
强制删除:git branch -D branchName
  1. 代码回滚提交
git revert commitId//基于commitId撤销回滚上次提交,且新建了一个commit
  1. 查看远程分支
git remote show //显示更多的远程分支
  1. 将本地分支推送到远程分支
git push <remoteRepo> <branch>  
例如 git push origin master 推送到远程orgin仓库的master分支  
或者,比如要将本地 develop 推送到远程 origin的master分支:  
有两种方法:  
1. git push origin master
2. git push origin develop:master    3. git push origin HEAD:originBranchName
  1. git push origin master内部详细
其实是展开为 git push origin master refs/heads/master:refs/heads/master
  1. git fetch
git fetch origin/develop 只会取下origin/develop的指针,但是不会在本地新建一个develop分支,但是可以使用 git merfe origin/develop将其合并到本地分支  
其实最好办法是git pull --rebase 
包括了git fetch 和 git rebase
  1. 基于远程分支新建一支本地分支,建立本地分支与远程分支的绑定关系
git checkout -b develop origin/develop //基于远程develop创建了一支本地develop分支
或者使用 git checkout --track origin/develop会在本地创建一个develop分支与远程develop绑定
  1. 改变一个本地已有分支与远程仓库分支的绑定关系
git branch -u origin/newDevelop
则将本地已有的分支与远程的分支的绑定关系

  1. 查看本地分支与远程分支的跟踪绑定关系
git branch -vv
  1. 删除远程分支
git push orign --delete develop //删除远程origin的develop分支
或者
git push origin :develop 则删除了origin仓库的develop分支
  1. 强烈推荐使用git pull --rebase
合并分支最好使用 git rebase  
git rebase branchName 的原理:将branchName作为本分支的基准基础,将在分支与branchName分支做差集,
差集作为补丁缓存,将补丁加到两个分支的公共部分后面就是合并了
  1. 新建远程分支
git branch --set-upstream debug origin/debug //其中debug为创建的分支
或者直接 git push -u origin dev
提交该分支到远程仓库
git push origin debug
  1. 查看远程仓库的分支
git branch -r
  1. git cherry-pick
git checkout -b localRelease remoteRelease//基于远程的release检出本地release分支
git cherry-pick commitId//将其他分支修改挑选apply到本地release分支上,解决冲突后
git review release/release_V5.1.0 将本地release修改推到远程release分支

  1. 本地分支推送到服务器
git push origin HEAD:develop
  1. 分支建立track关系
新建分支时跟踪
git  checkout -b new_branch_name  [--track] origin/remote_branch_name

设置已有分支和远端分支的跟踪关系
git  branch -u  origin/remote_branch_name  local_branch_name

或者
git branch --set-upstream-to=origin/remote_branch  your_branch
  1. git reset的三种
在对应的log记录选择对应的版本。

mixed:工作区不变,reset暂存区、reset当前分支
soft:工作区不变、暂存区不变、reset当前分支
hard:reset工作区、reset暂存区、reset当前分支
  1. 搜索git author
git log --author=<pattern> 
  1. 撤销add
git reset HEAD . 撤销所有add
git reset HEAD --fileName 撤销add的文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值