git常用命令总结, 一学就会系列

Git笔记

Git用处

  • 分布式版本控制的软件
  • 保留之前文件的所有的版本, 以便回滚和修改

Git官网和中文文档

  • 官网: https://git-scm.com/
  • 中文文档: https://git-scm.com/book/zh/v2

git基础命令

个人信息的配置

  • 如果第一次使用git, 需要配置个人信息, 否则在执行git commit -m '<版本名>'命令生成版本时, 会报错, 仅需一次, 之后便不再需要.

  • 配置代码

    // 配置邮箱:
    git config --global user.email "you@example.com"
    
    // 配置用户名:
    git config --global user.name "Your Name"
    

基本版本控制

  1. Git版本查看

    git --version
    
  2. 进入需要管理的文件夹

  3. 初始化

    // 会出现一个.git隐藏文件
    git init
    
  4. 检查管理文件

    // 已管理的文件为绿色, 未管理的文件为红色
    git status
    
  5. 管理文件夹

    // 管理一个文件
    git add <文件名>
    // 管理未管理的所有文件
    git add .
    
  6. 生成版本

    // 这个时候在执行git status命令时, 不会出现任何文件, 实现了完美状态(版本库状态)
    git commit -m '<版本名>'
    
  7. 修改文件

    修改文件后, 在执行git status命令时, 被修改的文件会再次变为红色(未管理状态), 只有再次执行添加管理命令git add .而后再次生成版本git commit -m '<版本名>', 才能再次实现完美状态.

  8. 版本查看

    // 以记录形式显示版本
    git log
    // 以图形形式显示版本
    git log --graph
    // 以图形形式显示版本且格式化,仅显示版本号和版本名
    git log --graph --pretty=format:"%h %s"
    

回滚

  • 回滚上一个版本

    // 版本号可以执行git log获取
    git log
    git reset --hard <版本号>
    
  • 重新回滚回来

    // 但是想要查找返回之前的所有版本号, 需要执行git reflog
    git reflog
    git reset --hard <版本号>
    

分支

  • 查看所有分支

    // 当前所在分支会呈现绿色
    git branch
    
  • 创建新的分支

    // 创建分支和现在所在的分支有关,表示是从现在的分支拆分出去的
    git branch <分支名>
    
  • 切换所在分支

    // 切换分支
    git checkout <分支名>
    
    // 创建并切换分支
    git checkout -b <分支名>
    
  • 合并分支

    // 想要切换到需要合并的分支
    // 如需要让dev分支合并到master分支上
    git checkout master
    
    // 合并分支
    git merge dev
    
  • 删除分支

    // 当分支无用后, 便可以删除分支
    git branch -d <分支名>
    
  • 冲突问题

    // 在合并分支时, 可能会报错(conflict冲突错误), 这个时候就需要去有冲突的文件内, 手动去修改冲突, 修改完毕后, 需要重新生成版本库
    // 将解决冲突后的文件加入缓存区
    git add .
    // 生成新的版本库
    git commit -m '已经解决完毕冲突'
    

上传远程仓库

  • 准备需要推送的远程仓库

    // 给远程仓库起别名
    git remote add origin <远程仓库地址>
    
  • 推送分支

    // 第一次一般都需要推送主分支(只有在版本库状态才能推送分支)
    // 切换成版本库状态
    git add .
    git commit -m '<版本名>'
    git push origin master
    
  • 克隆远程仓库上的代码

    // 将会clone所有分支
    git clone <远程仓库地址>
      
    // clone指定分支
    git clone -b <分支名> <远程仓库地址>
    
  • 拉取最新代码

    // 这个命令相当于直接将远程仓库的代码拉到工作区, 可能产生分支
    git pull origin <分支名>
    
    // 上述命令相当于以下两条命令
    // 把远程仓库的分支放入版本库
    git fetch origin <分支名>
    // 然后把拉去的分支合并到本地的分支,因为在远程仓库的分支会多一个前缀origin, 而正因为有合并, 所以在这里可能产生冲突(conflict)
    git merge origin/dev
    

rebase的使用

  • 合并: 单个分支上多个版本

    // 从最新的版本到此时合并的版本号中间所有的版本都合并成一个
    git rebase -i <版本号>
    
    // 从最新版本开始往前第n个版本合并成一个
    git rebase -i HEAD~n
    
    // 合并时会出现两个选项, 第一个将除最新记录外的之前记录前面都换成s,这样说明将之前的记录合并到最新记录, 而后执行:wq进行保存,而后第二个选项可以更改记录名,更改完成后,执行:wq保存即可
    
    // 在选项输入时技巧: insert键可以切换输入模式,插入或是改写,按下Esc键后可以输入:wq保存修改
    
    // 注意: 合并版本时尽量不要合并已push的版本,否则会导致版本很乱
    
  • 变基: 使git记录更加清晰(让dev分支合并到master分支时更清晰)

    // 先切换到dev分支
    git checkout dev
    
    // 让dev分支合并到master
    git rebase master
    
    // 如果此时产生了冲突中断了合并则需要先解决冲突, 然后执行git add ., 最后继续合并
    git add .
    git rebase --continue
    
    // 再次切换回master分支
    git checkout master
    
    // 然后把dev分支合并到master
    git merge dev
    
    // 如果直接执行git merge dev后, 其记录会出现分支情况, 但如果按照上述方式合并,便不会出现分支情况,master上的记录仍然是一条完整的,不会有任何分支
    
  • 远程仓库分支变基: 在远程拉取代码时也会产生分支, 这个时候也可以用rebase来实现记录的整合

    // 先把远程仓库的分支拉取到本地版本库
    git fetch origin dev
    
    // 然后合并到本地的dev分支
    git rebase origin/dev
    
    // 如果此时产生了冲突中断了合并则需要先解决冲突, 然后执行git add ., 最后继续合并
    git add .
    git rebase --continue
    
    // 这个时候就不能使用pull命令,因为pull的命令相当于直接执行了fetch以及merge命令,将会导致分支
    

给分支打上tag标记

// 本地打上tag
git tag -a v2 -m '<tag名>'
// 上传到远程仓库
git clone -b v2 <远程仓库地址>

git三大区域及远程仓库图解

在这里插入图片描述

给开源软件共享代码

  1. fork源代码, 把开源软件的源代码拷贝一份到自己的仓库
  2. 然后在自己的仓库修改别人的源代码
  3. 给原作者源代码提交已修改的代码, 就是创建一个pull request

##git三大区以及

远程仓库免密登录

  • URL方式

    // 原来的地址 https://github.com/.../....git
    // 修改为 https://用户名:密码github.com/.../....git
    
    // 当执行第一次设置远程仓库时
    git remote add origin https://用户名:密码github.com/.../....git
    // 再次pull或是push时都不需要用户名和密码
    git puh origin master
    
  • SSH实现

    // 1.执行命令生成公钥和私钥(默认会在 ~/.ssh目录下 id_rsa.pub是公钥, id_rsa是私钥)
    ssh-keygen
    // 2.拷贝公钥的内容, 并设置到远程仓库中
    // 3.在git本地配置ssh地址
    git remote add origin git@github.com/...
    // 再次pull或是push时都不需要用户名和密码
    git puh origin master
    
  • git自动管理凭证

    这个是git自带的, 会自动存在本机本地, 所以不需要格外操作, 只需要输入一次用户名和密码, 以后就不用了

git忽略文件

  • git有些文件是无需进行版本管理的, 就可以使用.gitignore忽略

  • 用法

    1. 新建文件.gitignore
    2. 把需要忽略的文件名写入此文件即可
    3. .gitignore文件本身也需要被忽略, 也要写入文件中
  • 其中语法参考:

    https://github.com/github/gitignore

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值