git学习小结

作者: perhaps青林 | 来源:发表于2018-09-26 09:11 被阅读5次

    一、安装配置

    1.1 安装

    win
    linux: sudo apt-get install git
    mac: brew install git

    1.2 基本配置

    配置文件 .gitconfig 在用户目录下

    # 用户名和密码
    git config --global user.name "perhaps"
    git config --global user.email "perhapszql@gmail.com"
    # 设置代理
    git config --local http.proxy 'socks5://127.0.0.1:1080'
    git config --local https.proxy 'socks5://127.0.0.1:1080'
    # 取消代理
    git config --local --unset http.proxy
    git config --local --unset https.proxy
    # 生成ssh密钥对在用户目录,公钥打开全选复制到github中
    ssh-keygen -t rsa -C "perhapszql@gmail.com"
    

    1.3 配置别名

    打开 .gitconfig 文件进行添加

    [user]
      email = perhapszql@gmail.com
      name = perhaps
    [http]
      proxy = socks5://127.0.0.1:1080
    [https]
      proxy = socks5://127.0.0.1:1080
    [alias]
      st = status -sb
      ad = add
      ci = commit
      br = branch
      co = checkout
      df = diff
      cp = cherry-pick
      lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
      alias = config --get-regexp 'alias.*'
    

    1.4 初始化

    • 本地初始化git init
    • 拉取远程库git clone git@github.com:perhaps-yo/knowledge.git

    1.5 原理分析

    工作区: 当前工程,不包括.git
    暂存区和分支区: .git文件
    忽略指定的文件: .gitignore

    二、远程库

    git remote add origin URL # 添加远程库origin
    git remote rm origin # 移除远程库origin
    git remote -v  # 显示origin远程库信息
    

    三、场景总结

    不管任何场景,每执行一个命令,都需要git st查看代码状态

    1、最常用的

    git ad * # 工作区 -> 暂存区
    git ci -m 'message' # 暂存区 -> 分支区
    git pull --rebase # 以rebase的形式合并代码,这里可能会merge失败
    git br # 查看当前分支
    git push origin <remote-branch> # 提交到远程库
    

    若rebase自动合并失败,会提示:auto-merging conflictconflict: merge conflict in FILE_NAME
    解决思路:自动merge成功后的代码,会放在暂存区,而merge失败的代码,会放在工作区,可先利用git df查看失败的代码,手动修改并保存到暂存区后,就可以继续rebase了

    git df # 工作区和暂存区比较,加--cached的话,就是暂存区和分支区的比较
    git ad <file-name> # 手动解决冲突后,添加文件到暂存区
    git rebase --continue
    

    2、分支合并

    git br # 查看本地所有分支,加-r可以查看远程所有分支
    git co master # 切换到master分支
    git merge dev # 合并dev分支到master分支
    git push origin master
    

    若自动merge失败,会提示:conflictautomatic merge failed
    解决思路:手动解决冲突,并用ad ci 保存

    3、命令撤销

    撤销add: git reset HEAD
    撤销commit: git reset --soft HEAD~
    修改commit: git ci --amend
    撤销push: 本地撤销commit和add,再强制push到远程: git push origin master --force

    4、版本回滚(危险操作)

    git lg # 查看要回退的commit-id
    git reset --hard <commit-id> # 若commit-id为HEAD~,则回退到上个版本
    git push origin master --force # 这里本该是先pull,但push force的话,**可以强制修改远程库分支**
    

    撤销上面的操作

    git reflog # 查看回滚前的commit-id
    git reset --hard <commit-id>
    

    5、移动文件夹

    git mv -fr <source> <destination> # 相对目录
    

    6、分支操作

    查看所有分支: git br -a
    新建分支: git br <br-name>
    删除分支: git br -d <br-name>, 若换成-D,则强制删除
    删除远程分支: git push origin -d <br-name>, 危险操作

    7、储藏代码状态

    git stash # 储藏工作区和暂存区的代码
    git stash list
    git stash pop # 应用储藏的代码
    

    相关文章

      网友评论

        本文标题:git学习小结

        本文链接:https://www.haomeiwen.com/subject/ykxdoftx.html