git 速查笔记

理念 & 技巧 & 提示

  • git 关键词 & 特性

    分布式 交换 版本控制 可离线 分支 基于修改

  • 代码位置

    仓库外 - 工作区(Working Directory) - 暂存区(stage) - 版本库(Repository) - 远程库(origin)
    在这里插入图片描述

  • 缺点

    • 只能跟踪管理文本文件
  • 指针 - (HEAD -> master -> a commit)

    HEAD - 当前的commit版本

    HEAD^ - 前一个commit版本

    HEAD^^ - 前两个commit版本

    HEAD~n - 前ncommit版本

  • .git - 用来管理 git 的目录, 默认隐藏, 用ls -ah命令可以看见

  • origin - 远程库的默认名字

命令

命令命令作用参数参数作用
add把文件放到Git仓库/暂存区<file>要提交的文件及路径
commit提交修改到本地的Git 仓库-m <mesage>提交的描述
init初始化目录为Git仓库
status查看工作区暂存区的文件更改状态
diff查看工作区文件的修改``<HEAD~n/commitId> – | 查看工作区版本库`里文件的区别
log显示从近到远的commit记录--pretty=oneline缩减log信息到一行
--graph显示分支图
--abbrev-commit显示短commitId
reset回退commit--hard
<HEAD~n/commitId>回退版本到某个commit之前
<file>把暂存区的修改回退到工作区
reflog查看产生修改的命令历史(不包括修改暂存区的)
checkout检出-- <file>根据版本库(commit)恢复工作区
<branch-name>切换到已有分支
-b <branch-name>创建并切换到(和当前分支一样的)新的分支
-b <branch> origin/<远程分支名>将远程分支创建到本地
switch切换分支<branch-name>切换到已有分支
-c <branch-name>创建并切换到(和当前分支一样的)新的分支
branch分支操作查看所有分支以及当前分支
<branch-name>创建(和当前分支一样的)新分支(不切换)
-d/-D <branch-name>删除(已合并/未合并)分支
--set-upstream-to=origin/远程分支名 本地分支名指定本地分支远程分支的连接,可以简化命令
merge合并分支<branch-name>合并某分支到当前分支
--no-ff -m "comment of merge commit <branch-name>"强制禁用Fast forward模式,使用一个新的 commit提交合并,保留合并历史
rm从版本库删除文件<file>从版本库中删除文件
remote远程库操作查看远程库名称
-v查看远程库信息
add <远程库名> 远程库[SSH/HTTP]地址本地仓库添加关联的远程仓库
rm <远程库名字>删除已有的远程库
push把分支推送到远程库origin <要推送的本地分支名>选择要推送的分支
-u把推送的本地分支与远程库中对应的分支关联起来,在以后push/pull时简化命令,直接用git push/pull,省略origin <branchname>
origin <tag-name>推送某个标签到远程库
origin --tags推送所有标签到远程库
origin :refs/tags/<tag-name>删除远程标签(已删除本地标签)
clone把远程库拷贝到本地git[SSH/HTTP]地址远程库地址,(github/gitlab会提供)
stash把当前工作区的修改暂时"储藏"起来,以清空工作区
list查看所有的stash
apply [stash@{0}]恢复但不删除stash,(可指定版本)
drop [stash@{0}]删除stash,(可指定版本)
pop [stash@{0}]恢复并删除stash,(可指定版本)
cherry-pick把某个分支某次提交的修改应用到当前分支<commitId>应用commitId对应的commit
rebase在一个分支的commit末尾commit另一个分支
tagcommit的标签,别名,标签可以跟随commit出现多次查看所有tag,结果不是按时间顺序而是按字母顺序
<tag-name>给当前分支最新提交的commit打上标签
<tag-name> <commitId>给某次commit打标签
-a <tag-name> -m "comment message"给某次commit打带有说明的标签
-d <tag-name>删除一个标签
show查看标签信息查看当前commit信息
<tag-name>查看某个tag对应commit的信息
config配置git仓库--global为电脑的所有仓库进行配置
color.ui truegit显示颜色
user.name "username"设置Git仓库的用户名
user.email "email"设置Git仓库的邮箱
alias.别名 全称为命令配置别名

场景

提交一个文件

git add readme.txt
geit commit -m "can't ignore this commit"

遇到冲突

先把有冲突的分支pull下来,在本地解决冲突然后再push

优化配置

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1'
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
cat .git/config 

安装 & 配置 & 使用(mac)

本地使用

  1. 安装

    • 通过 homebrew
    • 从AppStore安装Xcode -> 运行Xcode -> Xcode -> Preferences -> Downloads -> Command Line Tools -> Install
  2. 配置

    [ - - global ] 意思是为这台电脑的所有用户设置

    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"
    
  3. 初始化一个 git 目录

    git init
    

连接远程库

  1. 创建SSH Key, 一台电脑对应一个ssh key

    检查用户主目录下有没有.ssh目录,.ssh里有没有id_rsaid_rsa.pub两个文件,如果没有,执行以下命令

    ssh-keygen -t rsa -C "youremail@example.com"
    
  2. 远程Git仓库里配置上一步得到的秘钥id_rsa.pub

  3. 远程Git仓库中创建需要的仓库

  4. 开始

    • 本地仓库添加关联的远程仓库

      git remote add origin git[SSH/HTTP]地址
      
    • 远程仓库拷贝仓库到本地

      git clone git[SSH/HTTP]地址
      

相关链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值