首页 > 其他分享 >Git操作

Git操作

时间:2023-03-05 23:14:01浏览次数:39  
标签:Git 1.3 -- 仓库 git 操作 分支

目录
托管中心维护远程库

  • 内网:可以自己搭建一个GitLab服务器
  • 外网:可以使用码云、Github

版本控制工具

  • 集中式:CSV ,SVN,VSS
  • 分布式Git,Darcs,...

一、Git命令行操作

1.1本地库初始化

进入文件夹

git init
注意:生成的 .git 目录中存放的是本地库相关文件,不要删除

1.2设置签名

  • 项目(仓库)级别仅在当前本地库有效

    git config user.name tom  #设置用户名tom
    git config user.email [email protected] #设置用户邮箱
    
  • 系统用户级别仅在当前登录的操作系统用户有效

    git config --global user.name tom
    git config --global user.email [email protected]
    

仅仅加了一个 --global

优先级别:项目级别 > 系统级别

信息保存位置:~/.gitconfig 文件

1.3基本操作

1.3.1 状态查看

git status   #查看工作区、暂存区状态

1.3.2 添加

git add fileName  #指定文件
git add . #所有
说明:将工作区的文件添加到暂存区

1.3.3 提交

git commit -m 'commit message' fileName
说明:将暂存区内容提交到本地库

1.3.4 查看历史记录

git log 
git reflog  #常用
git log --greph #图形显示,更直观
git log --pretty=oneline #漂亮一行显示
git log --oneline #简洁显示
说明:HEAD@{移动到当前版本需要多少步}

1.3.5 前进后退

  • 基于索引值推荐

    git reset --hard 指针位置
    例子:git reset --hard a6ace91 #回到这个状态
    
  • 使用 ^ 符号只能后退

    git reset --hard HEAD^
    例子:git reset --hard HEAD^^
    注意:几个 ^ 表示后退几步
    
  • 使用 ~ 符号只能后退

    git reset --hard HEAD~n
    例子:git reset --hard HEAD~3
    

1.3.6 reset的三个参数比较

soft: 
  - 仅本地库移动HEAD 指针
mixed:
  - 在本地库移动HEAD指针
  - 重置暂存区
hard:
  - 在本地库移动HEAD指针
  - 重置暂存区
  - 重置工作区

1.3.7 删除文件并找回

  • 相当于建立一个快照,虽然删除了,但只要添加到暂存区,就能找回
git reset --hard 指针位置

1.3.8 文件差异比较

git diff 文件名
git diff 哈希值 文件名  #和历史中的一个版本比较
git diff  #不带文件名,则比较多个文件

2.1 分支管理

hot_fix master feature_x feature_y

2.2 什么是分支管理

  • 在版本控制中,使用推进多个任务

2.3 分支的好处

  • 同时并行推进多个功能开发,提高开发效率
  • 某一分支开发失败,不会对其它分支有任何影响

2.4 分支操作

  • 创建分支
git branch 分支名
  • 查看分支
git branch
git branch -v 
  • 切换分支
git checkout 分支名
git checkout -b 分支名   #创建分支并直接切换到该分支
  • 合并分支相当于把修改了的文件拉过来
git merge xxx
注意:合并分支的时候要明确谁谁合并
	我在a分支里面修改了。要合并到master,就先切换到master,然后合并b
  • 删除分支
git branch -d 分支名

2.5 解决冲突

  • 冲突的表现
  • 冲突的解决
    • 第一步:编辑,删除特殊标记<<< ===
    • 第二步:修改到满意位置,保存退出
    • 第三步:添加到缓存区 git add 文件名
    • 第四步:提交到本地库git commit -m '日志信息' 注意:后面一定不能带文件名

二、Git 结合Github

git加速

git clone https://github.com/tensorflow/models.git

只需把github.com换成github.com.cnpmjs.org即可

git clone https://github.com.cnpmjs.org/tensorflow/models.git

这样操作后的速度大概可以提高10倍

别分手 别名 分支名

1.1 创建远程库地址别名

git remote -v  #查看远程地址别名
git remote add 别名 远程地址 
例子:git remote add origin https://xx

Github支持两种同步方式“https”和“ssh”。如果使用https很简单基本不需要配置就可以使用,但是每次提交代码和下载代码时都需要输入用户名和密码。如果使用ssh方式就需要客户端先生成一个密钥对,即一个公钥一个私钥。然后还需要把公钥放到githib的服务器上。

1.1.1 配置ssh
  • **ssh配置:基于密匙的安全验证

git bash 执行命令,生命公钥和私钥:

ssh-keygen -t rsa

执行命令完成后,在window本地用户.ssh目录C:\Users\用户名.ssh下面生成如下名称的公钥和私钥:

  • ssh密钥配置

密钥生成后需要在github上配置密钥本地才可以顺利访问:

github>头像倒三角下拉找到【Settings】点击进入>【SSH and GPG keys>【New SSH key>输入公钥id_rsa.pub里的内容,标题mySSH,点击确定,即可。

1.1.2 基于ssh上传文件
echo "# pachong" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin [email protected]:username/pachong.git    
git push -u origin master

例子:上传README.md文件

  • git init:初始化文件夹

  • -m "first commit":做注释,第一次提交,可修改内容

  • origin:为远程仓库起的别名

  • username:自己的github用户名,需要修改

注意:若出现下面这句,表示别名已存在:

fatal: remote origin already exists

解决办法:删掉之前的别名即可

git remote rm origin

1.2 推送

开发修改完把本地库的文件推送到远程仓库 前提是提交到了本地库才可以推送

git push 别名 分支名
git push -u 别名 分支名    #-u指定默认主机
例子:git push origin master

1.3 克隆

完整的把远程库克隆到本地 克隆下来后不要在主分支里面做开发 clone进行一次,从无到有的过程,更新用pull

git clone  远程地址
例子:git clone https://xx.git

1.4 拉取

本地存在clone下来的文件 就用pull更新

pull = fetch + merge
	git fetch 别名 分支名
	git merge 别名 分支名
git pull 别名 分支名

1.5 解决冲突

注意:解决冲突后的提交是不能带文件名的

如果不是基于远程库最新版做的修改不能推送,必须先pull下来安装冲突办法解决

1.6 rebase

提交记录简洁不分叉 没学懂,感觉有点鸡肋 混眼熟

git rebase -i 索引号
git rebase -i HEAD~3  #合并最近三条记录
说明:在vim编辑里面改成s

1.7 beyond compare

用软件解决冲突

1.安装 :
   beyond compare 
2.配置:
   git config --local merge.tool bc3  #合并名称
   git config --local mergetool.path '/usr/local/bin/bcomp' #软件路径
   git config --local mergetool.keepBackup false  #False不用保存备份
3.应用:
   git mergetool
说明:--local指只在当前操作系统有效

1.8 跨团队合作

代码review之后合并

  • 适用于个人

    邀请成员:Settings --> Collaborators -->填写用户名 -->打开链接接受邀请

  • 企业 创建一个组织 方便管理

  • review

    组织做review 通过Pull request

  • 给开源社区共享代码

    点击别人仓库的fork 到自己的仓库 -- > 然后clone下来 修改后推送到远程库 --> 点击Pull Request请求 --> Create pull request发消息

1.9 Tag标签

为了清晰的版本管理,公司一般不会直接使用commit提交

git tag -a v1.0 -m '版本介绍'   #创建本地tag信息
git tag -d v1.0    		#删除tag
git push origin --tags   #将本地tag信息推送到远程库
git pull origin --tags    #拉取到本地

git checkout v.10    #切换tag
git clone -b v0.1 地址   #指定tag下载代码

1.10 SSH 免密登录

  • 输入:ssh-keygen -t rsa -C GitHub邮箱地址
  • 进入.ssh目录,复制id_rsa.pub文件内容
  • 登录GitHub。Settings --> SSH and GPG keys --> New SSH Key
  • 回到git通过ssh地址创建。git remote add 别名 SSH地址

三、Git工作流

1.1 概念

在项目开发过程中使用Git的方式

1.2 分类

1.2.1 集中式工作流
像SVN一样,集中式工作流有一个中央仓库,所有的修改都提交到了Master分支上
1.2.2 GitFlow工作流 *

主干分支master 开发分支develop 修复分支hotfix 预发布分支release 功能分支feature

GitFlow 有独立的分支,让发布迭代过程更流畅。
1.2.3 Forking 工作流
在 GitFlow 基础上, 充分利用了 Git 的 Fork 和 pull request 的功能以达到代码审核的目的。 
安全可靠地管理大团队的开发者

四、Git 结合idea

1. 常见错误:IDEA出现:push rejected

  • 如果不成功,可以先删去本地的git文件

  • 操作顺序:创建本地仓库,VCS-->Import into Version Control-->Create Git Repository-->执行下面的指令

在idea按下alt+F12,打开Terminal页面

执行指令:

git pull origin master --allow-unrelated-histories

后面加上 --allow-unrelated-histories , 其实就是把两段不相干的分支进行强行合并

出现该页面说明成功!

 * branch            master     -> FETCH_HEAD
Merge made by the 'recursive' strategy.
 huashangjianfa.txt | 1 +
 1 file changed, 1 insertion(+)

2. 配置

  • 在IDEA中设置GitHub,File-->Setting->Version Control-->GibHub,勾选支持ssh

  • 创建本地仓库,VCS-->Import into Version Control-->Create Git Repository...

  • 上传项目到本地仓库:右键项目:git-->+Add-->Commit Directory...-->输入信息,点击commit

  • 上传远程仓库:VCS-->Git-->remotes-->输入远程仓库name,和URL-->点击push ;测试name为origin 成功;

五、git上传码云

1.准备 Git 仓库

码云:https://gitee.com

1.1. 通过网站右上角的「+」号,选择「新建仓库」,进入新建仓库页面

IMG_256

1.2. 新建仓库

img

1.3. 打开项目并点击菜单栏上的【CVS】--》【Import into version control】--》【Create Git Repository】创建本地仓库

img

1.4. 在打开的【Create Git Repository】对话框内选择本地仓库的位置,这里我选择项目的根目录。

img

1.5. 右击项目点击【Git】--》【Add】,接着点击【Git】--》【Commit Directory】在打开的窗口中选择要上传到本地仓库的代码并添加注释后提交到本地仓库内。

img

1.6. 右击项目点击【Git】--》【Repository】--》【Remotes...】。在打开的【Git Remotes】窗口中添加码云的远程仓库。码云的远程仓库地址可以在码云仓库内找到。

img
img
img

1.7. 点击【OK】后接着输入码云的账号密码。

img

1.8. 上传代码到码云,右击项目点击【Git】--》【Repository】--》【Push...】在打开的【Push commits】内可以看到已提交到本地仓库的提交信息。点击【Push】按钮将本地仓库的代码上传到码云上,上传成功后就可以在码云上看到啦。

标签:Git,1.3,--,仓库,git,操作,分支
From: https://www.cnblogs.com/my-global/p/17182114.html

相关文章

  • Python学习笔记(七)字符串操作
    一、数据类型转换%s字符串%d数值整数%f浮点数formatf表达式挖坑填坑法则1name='张三'2age=183height=180.545print('我的名字是%s'%name)6p......
  • selenium的各种操作
    importtimefromselenium.webdriverimportEdgefromselenium.webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeys#键盘输入#1.......
  • 多对多三种创建方式,django内置序列化组件(drf前身),批量操作数据,分页器思路,自定义
    多对多三种创建方式,django内置序列化组件(drf前身),批量操作数据,分页器思路,自定义分页器的使用,form组件多对多三种创建方式1.全自动创建 classBook(models.Model):......
  • Github学习
    1.常用词含义watch:会持续收到该项目的动态fork:复制某个仓库到自己的Github仓库中star:可以理解为点赞clone:将项目下载至本地follow:关注你感兴趣的作者,会收到他们的动......
  • 数据库的操作
    sql通用语法SQL分类DDL操作数据库表结构,表中字段的创建数据库createschematest;createdatabasestest;创建表示例createtableuser(idintnullcomment......
  • python操作mysql
    1、mysql查询操作:#!/usr/bin/python#-*-coding:UTF-8-*-importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","root","111111","analysis2")#使用cursor......
  • git clone的时候出现出现 fatal: unable to access 'https://github.com/...':OpenSSL
    一般发生这种事故因为代理在git种配置的,既然它是https代理(而不是http)gitconfighttp.proxy和gitconfig--globalhttp.proxy也无济于事。解决方案一 1、先看看......
  • git推送项目到GitHub
    记录一下leetcode上的算法练习,将代码记录下来作为记录,如有错误缺漏请多指点一、GitHub上创建项目仓库登录GitHub->newrepository创建库创建完成后可在yourreposito......
  • MySQL基本命令操作
    目录创建数据库删除数据库数据表的创建与管理删除数据表修改字段数据类型添加字段字段更名删除字段表数据管理插入数据查询数据模糊匹配排序与分组HAVING子句查询聚合函数......
  • C语言-操作文件夹和文件
    文件夹——_mkdir()1#include<stdio.h>2#include<io.h>3#include<direct.h>45/**6*int_access(constchar*path,intmode);7*int_waccess(......