GIT了解和使用

概述:版本控制管理工具

作用:代码管理;

  1. 备份多个版本,省时间省空间
  2. 可以恢复到以前的版本
  3. 解决代码冲突问题
  4. 可追溯问题查询修改人和修改时间
  5. 进行权限控制

官网:https://git-scm.com/

下载:官网下载安装

测试安装是否成功git -- version

仓库下载代码

国内:gtiee码云https://gitee.com/

国外:githubhttps://github.com/

日常操作:

  1. 下载项目:git clone "项目地址"

  2. 创建仓库:登陆git工具=》新建仓库(填写信息)提交

  3. 将本地代码提交到远程仓库
    需要本地运行终端配置用户名和邮箱

    javascript 复制代码
    git config --global user.name "你的用户名称"
    git config --global user.email "你的邮箱"

    远程仓库和本地机器连接
    设置=》SSH公钥
    生成SSH公钥https://help.gitee.com/base/account/SSH公钥设置
    终端运行:ssh-keygen -t ed25519 -C "你的邮箱"
    回车 y 中间通过三次回车 确定
    运行:cat ~/.ssh/id_rsa.pub
    把终端中运行后的代码粘贴复制到"SSH公钥"中配置

  4. 上传代码:
    提交所有代码到中转站git add .(注意add后加空格点)
    提交所有代码到本地仓库git commit -m '提交到注释'
    提交本地仓库到gitee/github远程仓库git push

面试题:svn与git的区别?

svn集中式管理,git是分布式管理,有本地仓库(暂缓区);git速度快

开发中git命令

  1. 初始化仓库 ===>git init

  2. 查看配置 ===>git config -l

    进公司做项目,必配user.email 和 user.name

    javascript 复制代码
    git config --global user.name "你的用户名称"
    git config --global user.email "你的邮箱"
  3. 查看状态 =>git status
    红色的=》没有被git管理

    绿色的===》存储在版本库暂缓区

  4. 添加到暂缓区 ===> git add .

    .代表所有文件

    指定某一个文件 git add index.js

  5. 添加到分支中 ===> git commit -m '注释内容'

  6. 查看修改文件 ===> git diff

    查看某一个文件:git diff index.js

    查看所有文件 :git diff

  7. 查看修改历史 ===> git log

  8. 查看修改历史【简单形式】 ===> git reflog

  9. 回到之前的版本

    回到上一个版本:git reset --hard HEAD^

    回到指定版本 :git reset --hard 版本号

解决团队开发中代码冲突问题

修改不是同一个文件时先把远程仓库代码拉下来,在提交

javascript 复制代码
git pull
git push

修改同一个文件时:git add .;git commit -m '修改内容描述';git push;提交不上去报错,先把拉取代码git pull,然后手动修改代码冲突报错的乱码删除掉,然后判断或和同事商量代码是合并还是修改,再次提交git add .;git commit -m '修改内容描述';git push

分支

分支独立,分支之间互不影响

默认分支=》master·

查看本地分支=》git branch

新建本地分支=〉git branch 新分支名称(新分支会继承旧分支的内容)

切换分支=》git checkout -b 分支名称

查看远程仓库分支=》git branch -r

本地分支提交远程仓库分支=〉git push --set-upstream origin 分支名称

删除本地分支=》git branch -d 分支名称(不能删除你当前所在的分支)

删除远程仓库分支=〉git push origin --delete 分支名称

合并分支=》当前在master分支时,git merge 分支名称,master+=分支,合并分支会解决冲突手动修改代码冲突报错的乱码删除掉,然后 查看状态git status没有问题,git add .;git commit -m '合并分支描述';git push;

gitflow工作流(中,大型项目)

master =》用于保存上线版本代码,创建了dev分支

develop =〉用于保存相对稳定版本的代码,所有的feature都是dev分支创建的

在develop合并代码git merge origin/feature/longin;git merge origin/feature/list;git add .;git commit -m '合并分支描述';git push;

feature =》用于开发某几个功能,不同的功能可能会创建不同的分支 ***feature/login ***feature/list

release =》用于代码上线前的准备(测试,bug修复),是dev创建的 ***release/v1.0

bugfix =》用于修复不紧急bug ,在release创建

hotfix =》用于修复紧急bug,在release创建

相关推荐
Jooolin36 分钟前
【编程史】Gitee是啥?它和GitHub关系是什么?
git·github·ai编程
貂蝉空大2 小时前
Git Switch 与 Git Restore 详解
git
aini_lovee10 小时前
python在容器内克隆拉取git私有仓库
git·python·elasticsearch
zhangphil10 小时前
git merge合并分支push报错:Your branch is ahead of ‘xxx‘ by xx commits.
git
2018_XWJ10 小时前
本地项目push到git
git
漫步企鹅11 小时前
【Git】面对发布或重要节点,Git如何打Tag?
git·tag·节点·发布
能工智人小辰11 小时前
learngitbranching git游戏笔记
git
牧野星辰21 小时前
.gitignore文件的规范
git·github
二个半engineer1 天前
GitLab Web 界面创建分支后pathspec ... did not match any file(s)
git·gitlab
尽兴-1 天前
Git 清理指南:如何从版本库中移除误提交的文件(保留本地文件)
大数据·git·gitee·gitlab