【git学习总结】

参考资料

  1. git学习圣经 pro git

  2. GIF图解git 各种操作

  3. 网页git演练

git的核心概念:快照

“木头龙”的回答

git 常用术语

origin:特指clone时的远程仓库
远程仓库: git clone 时使用的url,默认名字:origin 查看命令:git remote -v

> $ git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)

HEAD: 当前所在的本地分支。可以将HEAD想象为当前分支的别名。
跟踪分支: 每一个分支都是从其他母分支分出来的,这个母分支就叫做跟踪分支。

git branch -vv

分支开发模式: 开发人员拥有远程仓库的push权限,通过建立特性分支并在上面开发,最后通过merge request向远程仓库提交合入请求。适用于小型软件快速开发。

fork开发模式: 开发人员没有远程仓库的push权限,通过1 fork远程仓库、2 clone fork仓库、3 添加所fork的远程仓库、4 修改fork仓库、5 在fork仓库上push,6 最后通过pull request向远程仓库提交合入请求。适用于大型软件开发。

git 常用命令总结

  1. git clone

    git clone URL fileName
    该命令会:1 新建文件夹fileName 2 将远程仓库的内容下载至fileName 3 新建一个基于origin/master的本地master分支

    git clone URL ./
    将远程仓库内容直接下载到当前目录

  2. git fetch + git merge = git pull

  3. git checkout

    git checkout feature
    当第一次checkout 远程分支feature时,会自动建立一个与远程分支名称相同的本地分支feature
    如下命令会基于远程分支feature建立一个名为xxx的本地分支
    git checkout origin/feature -b xxx
    or
    git checkout -b xxx origin/feature

  4. git log

    查看最近两次日志
    git log -2
    查看所有分支以及远程分支
    git log --all
    查看图形化日志
    git log --oneline --graph
    查看某个文件的修改日志
    git log ./code/main.c
    查看含有某个字符串修改的日志
    git log -S functionName
    查看提交说明中包含指定字符串的日志
    git log --grep=‘fix bug’
    查看某个人的修改日志
    git log --author=jack
    git log --committer=tom

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

    git pull origin master:brantest
    含义:将最新的远程仓库(origin)的分支(master)与本地分支brantest合并
    git pull origin master
    含义:将最新的远程仓库(origin)的分支(master)与当前的本地分支合并

  6. git push <远程主机名> <本地分支名>:<远程分支名>

    如果本地分支名与远程分支名相同,则可以简写:
    git push <远程主机名> <本地分支名>
    实例
    以下命令将本地的 master 分支推送到 origin 主机的 master 分支。

    $ git push origin master

    相等于:

    $ git push origin master:master

  7. git remote show origin

    查看远程仓库详细信息 以及本地分支和远端分支的关系

  8. git rebase
    不建议使用,就算使用也要在尚未推送给别人的本地修改

常见场景操作

  1. commit之后发现漏改一个文件或者commit的提交日志信息有误
    当然可以再做一次commit,但是这样日志不够整洁。可以利用 --amend:
    $ git commit -m ‘1st unfinished commit’
    $ git add forgotten_file
    $ git commit --amend (可以修改日志信息)
    最终你只会有一个提交——第二次提交将代替第一次提交的结果

  2. 正在分支A开发特性,临时需要紧急解决主干master上的一个问题。
    对于分支A的工作目录或暂存区的内容有两种方法:
    1 使用git stash暂存
    2 先把所有已做工作提交,解决完问题返回分支A后 使用git commit --amend完成修改

常见问题

  1. git bash乱码问题:
    bash执行
    git config --global gui.encoding utf-8
    git config --global i18n.commitencoding utf-8
    git config --global i18n.logoutputencoding utf-8

  2. 撤销git add:
    git reset HEAD

  3. 撤销git commit:
    不删除工作空间改动代码,撤销commit,不撤销git add .
    git reset --soft HEAD^
    删除工作空间改动代码,撤销commit,撤销git add .
    git reset --hard HEAD^

  4. commit提交模板
    查看当前git配置
    git config --global --list
    git config --global commit.template “模板文件路径/模板.txt”

  5. 如何优雅的删掉某条commit
    前提:本地未push 有这样的提交路径 (旧到新)A->B->C->D
    需要将B commit删掉保留A->C->D
    git reset A --hard
    git cherry-pick C D
    或者
    git rebase -i A
    这个命令以A为新的基准(base),将A之后的commit列出来让用户选择如何处理。在出现的编辑界面上,把B前面的pick改成d或者drop,或者把一整行删除掉,保存退出就可以了。

  6. 从工作ing分支切换至其他分支
    本地存在未提交的改动,需要查看其他分支代码或debug其他分支时,可以使用git stash 暂存

    git stash save “idea1-stach”
    git stash list
    git stash pop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值