栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Git - 日常使用小结

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Git - 日常使用小结

文章目录
  • 前言
  • 本地配置
  • Git基础概念
  • 基本操作
    • 仓库获取
    • 拉取
    • 提交
    • 分支管理
    • 更新子模块
    • 查看修改
    • 提交了错误的commit
    • 多人协同开发常见问题
  • 在线学习网站
  • 参考鸣谢
  • 深入讲解

前言

说来惭愧,关于版本控制工具,此前虽然用过SVN和Git,但都是局限于本地管理,所以并没有远程仓的概念…

远程环境这里使用 GayHub,其他提供远程Git存储库的服务平台其实也大同小异。

本地配置
  • Git 安装
  • 配置个人信息
    #  : 表示需要替换的内容
    git config --global user.name 
    git config --global user.email  
    # ps: 使用config指令查看所有配置
    git config --list
    
  • 配置SSH Key
    # 检查是否存在SSH Key
    cd ~/.ssh && ls
    # 如果出现了 id_rsa.pub 那么直接跳过这一步
    
    #配置SSH Key
    ssh-keygen -t rsa -C 
    
  • 添加SSH Key 到 GayHub
    # 打印 id_rsa.pub
    cd ~/.ssh && cat id_rsa.pub
    # GayHUb 个人头像 --> Setting --> SSH and GPG keys --> New SSH key
    
  • 测试
    ssh -T git@github.com
    
Git基础概念

  • 工作区间:即我们的工程项目文件。
  • 缓存区:只能通过 git GUI 或 git shell 窗口显示,提交代码、解决冲突的中转站。
  • 本地仓库:只能在git shell 窗口显示,连接本地代码跟远程代码的枢纽,不能联网时本地代码可先提交至该处。
  • 远程仓库:保存我们代码的服务器。
基本操作 仓库获取
  • 从远程拉取
    # GayHub 上进入项目首页,点击Code,选择SSH方式(默认),复制项目地址
    git clone 
    
  • 在本地创建仓库同步到远程仓
    # 本地仓库创建
    git init
    # 添加文件到版本管理器
    git add 
    # 重版本控制中移除文件
    git rm 
    # 文件重命名
    git mv  
    # 查看当前状态
    git status
    
    # 创建远程仓库后复制项目地址URL
    # 关联远程仓库
    git remote add  
    
    # 推送到远程仓库
    git push -u origin master
    # ps: 远程仓库空时需要加 -u
    
拉取
# 下载远程代码并合并
git pull
提交
# 提交到暂存区
git commit
# 推送到远程仓库并合并
git push
分支管理
  • 克隆指定分支
    #  是分支名  是仓库地址
    git clone -b  
    
  • 切换分支
    git check 
    
  • 更新主分支流到某分支
    # 一般我选择将两个分支都 clone 下来,通过 Beyond Compare 比较后手动同步代码,再 commint, push...
    
更新子模块
# 有时候项目依赖到其他子项目,需要我们下载子项目
git submodule init
git submodule update
查看修改
# 可以查看每个commit的改动细节
git log -p
# 查看简要统计
git log --stat
# 查看指定commit的指定文件改动细节
git show  

# 显示暂存区和上一条提交之间的不同,即如果执行commit的结果
git diff --staged
# 显示工作区和暂存区之间的不同,即如果所有文件都add的结果
git diff
# 显示工作目录和上一条提交之间的不同,即苏鸥文件都add 再commit的结果
git diff HEAD
提交了错误的commit
  • 修改commit
    # 将存在问题的文件改好
    # 添加到暂存区
    git add 
    # 提交修改
    git commit --amend
    
    • 回滚
    # git reset [--soft | --mixed | --hard] [HEAD]
    # 回退所有内容到上一个版本
    git reset HEAD^
    # 回退 hello.php 文件的版本到上一个版本
    git reset HEAD^ hello.php
    # 回退到指定版本
    git  reset  052e
    
    # 补充 HEAD 说明:
    # ^
    	# - HEAD 表示当前版本
    	# - HEAD^ 上一个版本
    	# - HEAD^^ 上上个版本
    	# - ...
    # ~
    	# - HEAD~0 表示当前版本
    	# - HEAD~1 上一个版本
    	# - ...
    
  • 再次提交提交 合并commint
    # 合并最近两次提交
    git rebase -i HEAD~2
    

注意:rebase 在 git 中是一个非常有魅力的命令,使用得当会极大提高自己的工作效率;相反,如果乱用,会给团队中其他人带来麻烦。

多人协同开发常见问题
  • 提交代码推荐前摇
# 人物:同事A,同事B
# 初始远程仓:版本T
# 由于所有项目组成员都可以修改远程仓库的版本,所有很容易出现一下情况:
# 问题流程: 同事A、B都clone了远程仓版本T,修改后的版本我们记录为TA、TB。假设同事A 先提交,这时远程仓的变为TA了,同事B再提交代码时可能出现两个情况:
# 1. Git自动合并 
# 2.你们修改了同一个代码段,提交冲突
# 个人习惯:提交代码前先从远程仓同步代码最后再推送至远程仓
	git pull --rebase
在线学习网站

Learn Git Branching

参考鸣谢

git图解:代码区域总结

图解git原理与日常实用指南

深入讲解

这才是真正的Git——Git内部原理揭秘!

这才是真正的 Git——分支合并

这才是真正的Git——Git实用技巧

详解 Git 大文件存储(Git LFS)

图解4种git合并分支方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/309166.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号