Git常见用法总结

Git的各种用法太多了,以下针对部分场景下Git的使用作一个总结

不提交当前分支,切换到其它分支进行操作

假设在当前分支上已经进行了bug修改但还未提交,转而要切换到master分支上去修复bug,执行 $ git checkout master 命令的时候将会提示错误.
可以采取的解决方法有两种:一种是先提交后再切换,一种是使用 stash .
在需要切换的分支上执行 $ git stash,可将当前分支存储起来,然后就可以切换到master分支上去;修复完master分支上的bug并提交后,想要切回原来的分支,需要恢复未提交的改动:

  • 使用 $ git stash list 命令查看存储列表
  • 使用 $ git stash show -p stash@{id} 可以查看具体更改的内容.
  • 使用 $ git stash apply 命令恢复. 如在一个分支上有多个stash,可在命令尾部加 id 来指定某个stash, 如 $ git stash apply stash@{id} . 此命令执行后,stash的内容不会被删除,需要使用 $git stash drop 来删除.
  • 使用 $ git stash pop 命令恢复. 使用此命令,恢复的同时会把stash存储列表的内容也删除了. 如要指定具体的序号,可以使用 $ git stash pop stash@{id}
  • 使用 $ git stash save ‘message…’ 命令可以添加注释信息
分支相关操作
  • 新建分支,并切换到指定的远程分支:
    $ git checkout -b 本地分支名 origin/远程分支名
  • 查看本地分支及追踪的分支:
    $ git branch -vv
修改合并多个commit

假如想要修改以前的三次提交信息,将这三次提交的最早一个的父提交(commit id,这个提交是不参与合并的,可以视为一个坐标)作为参数传递给 $ git rebase -i 命令,或者是将 HEAD~3 作为参数传递.
然后会弹出一个交互式变基的运行脚本,它会将你指定的那个最旧的一个提交列在最上面. 我们将准备合并入最上面提交的那两个提交前的 ‘pick’ 改为 ‘s’,保存退出后,git 会压缩提交历史,然后弹出注释修改界面,编辑完保存退出,即可完成. 如果压缩提交历史时有冲突,需要修改,修改后执行 $ git add . 以及 $ git rebase continue,如果想放弃这次 commit 的压缩的话,使用 $ git rebase --abort
在推送到远程分支时,需要强制推送,使用 $ git push -f

在commit之后想要撤销
  • 不删除工作空间改动,撤销commit,不撤销 $ git add :
    $ git reset --soft HEAD^
  • 不删除工作空间改动,撤销commit,撤销 $ git add :
    $ git reset --mixed HEAD^
  • 删除工作空间改动,撤销commit,撤销 $ git add :
    $ git reset --hard HEAD^
相关配置命令
  • 解决提示"文件名过长"错误:
    $ git config --system core.longpaths true
    仅设置当前项目:
    $ git config core.longpaths true
    查看设置状态:
    $ git config core.longpaths
一般性开发流程
  • 项目初始化获取代码
    $ git clone <git repository url>
  • 新建分支并进行开发工作
    $ git checkout -b newbranch
  • 开发完成,在本地提交修改的代码
    $ git commit -m “…”
  • 切换到master分支,拉取服务器的最新代码
    $ git checkout master & git pull
  • 切回到newbranch分支,rebase到最新master分支
    $ git rebase master
  • 最后推送本地的代码到服务器
查看未推送到远程代码库的提交
  • 查看未传送到未传送到远程代码库的提交次数:
    $ git status
    在这里插入图片描述
  • 查看未传送到远程代码库的提交描述/说明:
    $ git cherry -v
    在这里插入图片描述
  • 查看未传送到远程代码库的提交详情
    $ git log master ^origin/master
    在这里插入图片描述
处理本地代码处于detached HEAD的情况

可按顺序执行:

  1. $ git commit 进行提交. (提交完本地分支指向刚commit完的状态码,例如h72363)
  2. $ git branch short h72363,在本地创建short分支,并将commit的内容放到新分支里存储.
  3. $ git checkout short 切换到刚才新建的分支.
  4. $ git checkout master 切换到原来开发的分支.
  5. $ git merge short 将之前存储到short分支上的内容合并到当前的分支上.
  6. $ git branch -d short 删除short临时分支
查看某行代码的修改历史
  • 查看某行代码的提交commit_ID(50-100行)
    $ git blame -L 50,100 file_name
  • 根据 commit_ID 可以查看对应的提交记录
    $ git show commit_ID
用 HTTPS URL 与远程仓库交互不输入用户名和密码
  • 让git存储用户名和密码
    $ git config --global credential.helper store
  • 保存会话的用户名和密码(缓存)
    $ git config --global credential.helper cache
打标签相关操作
  • 简单打tag
    $ git tag <name>
  • 创建带有说明的标签
    $ git tag -a <name> -m” <commit id>
  • 查看所有标签
    $ git tag
  • 查看标签信息
    $ git show <tagname>
  • 把本地指定tag推送到远程
    $ git push origin <tagname>
  • push所有tag
    $ git push origin --tags
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值