Git学习条记

打印 上一主题 下一主题

主题 774|帖子 774|积分 2322

记录一下Git学习条记,老少皆宜。(有Linux底子对于学习会有资助)

简介:

Git(读音为/gɪt/)是一个开源的分布式版本控制体系,可以有效、高速地处理从很小到非常大的项目版本管理。
简朴理解就是开辟们一起开辟一个项目,你做你的模块,我写我的接口,可以同步进行开辟,提拔工作服从。整个开辟中可以记录代码变动过程,回溯项目版本。
发展背景:

Linux最初采用的是与Unix雷同的通过邮件互发patch的方式来共享更改内容。然而,随着内核开辟者群体连续扩大,这种贡献管理方式所需的人力成本已经显着对内核开辟历程产生影响。  在2002年时,Linux开始运用BitKeeper分布式版本控制体系对源代码进行管理。不过,商业软件存在着严格的限定。Linux社区成员Andrew(samba(局域网共享文件C/S程序)的作者)实验破解BitKeeper并共享给全部人利用,这一行为被BitMover公司察觉,随后该公司收回了免费利用的版权。(BitKeeper(BK)软件的作者/公司CEO Larry McVoy是Linux 0.97阶段的贡献者固然产生了抵牾,但是极大提拔了Linux生态和Git的发展)  到了2005年,由于原有版本控制体系出现标题,Linux之父林纳斯·托瓦兹(Linus Torvalds)仅耗时10天便编写了最初的Git版本。(技能与思想相互碰撞的效果)  
至此,史上最好用的分布式版本控制体系诞生了。
分布式和会合式版本控制体系区别

会合式版本控制体系另有SVN。(华为好像用的SVN)
分布式和会合式是盘算机架构的两种根本模式。
分布式版本控制体系:每个开辟者在当地都有一个完整的代码堆栈副本,包括代码的完整历史记录。开辟者可以在当地进行版本控制操纵,如提交、合并等,然后将变动推送到远程堆栈。

会合式版本控制体系:全部代码和历史记录都存储在一个中央服务器上。开辟者需要连接到中央服务器来提交代码和获取代码的最新版本。

分布式版本控制体系
机动性高:开辟者可以在没有网络连接的情况下进行版本控制操纵
容错性高:由于每个开辟者都有完整的代码堆栈副本,即使中央服务器出现标题,项目也不会有影响。
会合式版本控制体系
管理方便:全部代码和记录都会合在中央服务器,方便会合管理和监控。
权限控制:可以方便地对不同开辟者进行权限控制,确保代码的安全性。
安装Git

官网下载
   https:/git-scm.com
  点击Downloads

选择安装什么体系下的软件(我在此用Windos做演示)

选择64位安装

双击安装程序根据所需进行安装
读取相干简介,点击Next
选择安装位置,发起安装在非中文无空格目录下,点击Next
默认勾选即可,无需修改,点击Next
选择开始菜单,默认即可,点击Next
选择默认编辑器,默认即可,点击Next
默认分支名设置,照旧默认设置(选择让Git决定,分支名默认master),点击Next
是否将Git添加到环境变量PATH中,选择第一项(不修改环境变量,在Git Bash中利用Git),点击Next
选择连接协议,默认即可,点击Next
选择后台客户端传输协议,默认即可,点击Next
配置Git文件的行末换行符,Windons利用CRLF,Linux利用LF,默认即可(自动转换),点击Next
选择Git终端范例,默认即可(Git Bash),点击Next
选择Git pull合并模式,默认即可,点击Next
选择Git凭据管理器,默认即可,点击Next
其他配置,默认即可,点击Next
实验选项配置,新特性,默认都不勾选,点击Install
安装完成,取消勾选第二项,点击Finish
在任何目录下右键出现以下两项阐明Git安装乐成


Git的利用

一,Git的利用方式

Git有三种利用方式:
命令行方式
图形化界面(GUI)
IDE插件/扩展
二,命令行利用

1.打开git-bash.exe查看一下版本

   git --version
  

2.配置用户名,邮箱

   git config --global user.name "用户名"
  git config --global user.email "邮箱"
  git config --global --list
    config是用来配置git环境的
  --gloabal 全局配置,全部堆栈生效
  --system 体系配置 ,对全部用户生效
  

3.初始化当地堆栈

要利用Git对我们的代码进行版本控制,首先要需要获得Git堆栈,获取Git堆栈通常有两种方式:
1.从当地初始化Git堆栈
2.从远程堆栈(GitHub,Gitee,)克隆一个堆栈
我们先来讲当地初始化

1.在磁盘中创建一个目录作为当地Git堆栈,右键点击Open Git Bash here

2.执行初始化命令
   git init
  

发现Git默认创建一个master分支,而且Git_test目录中生成了一个.git的目录(假如没看见就是隐藏了表现就可以看见)
3.查看.git目录结构(雷同于Liunx)
   ls -a
  cd .git/
  ls
  
再来讲远程初始化(后面会单独演示)


需要提前在平台建立一个远程堆栈。
克隆一个堆栈到当地
   git clone "堆栈地址"
  

4.查看当地库状态

初次查看
   git stauts
  

5.工作原理


(working Directory)工作区:这是你当前正在工作的目录,包罗了项目的实际文件。
(StagingArea/index)暂存区:这是一个临时存储地区,用于准备下一次提交的内容。当你利用 git add 命令时,文件会被添加到暂存区。
(Local Respositilory)堆栈:这是存储项目历史记录的地方,包括全部的提交和分支信息。当你利用 git commit命令时暂存区文件,会提交到堆栈。
1.创建一个文件
   touch file1.txt
  vi file1.txt
  点击键盘A,然后写入Hello World,点击ESC点击:键,输入wq
  ls
  cat file1.txt
  

2.查看状态

绿色的是之前的目录已经存在暂存区,红色是对文件未被跟踪的状态
3.添加到暂存区,并查看状态
   git add "要添加的文件名"
  git status
  

4.取消添加
   git rm --cached "文件名"
  

5.将暂存区的文件提交到堆栈
   git commit -m “解释(发起英文)”  "文件名"
  


6.修改暂存区提交信息

   git commint --amend
  

均可执行多个文件
6.回退版本

你可能会遇到需要撤销之前的修改或者重新设置当前的工作状态。git reset 命令可以资助你撤销之前的操纵,恢复到某个特定的状态,这对于调试和代码管理非常有用。
reset是重置命令
--soft 模式:git reset --soft HEAD~1 会将 HEAD 指针移动到上一个提交,但不会改变暂存区和工作目录。这意味着你可以重新提交之前的修改。
--mixed 模式:git reset --mixed HEAD~1 或简写为 git reset HEAD~1,会将 HEAD 指针移动到上一个提交,并更新暂存区,但不会改变工作目录。这样你可以重新决定哪些修改需要暂存。
--hard 模式:git reset --hard HEAD~1 会将 HEAD 指针移动到上一个提交,而且同时更新暂存区和工作目录。这意味着工作目录中的全部未提交的修改都会被丢弃,以是利用时要特殊警惕。
hard模式

1.创建一个text文件,提交到堆栈

2.修改文件,提交到堆栈

3.根据ID回退版本


soft模式


mixed模式


7.查看两个提交文件之间的区别


8.删除文件

以Linux方式删除

暂存区文件依然存在

将全部更改提交到暂存区后再次查看状态发现删除乐成

   git rm "要删除的文件"
  可以同时删除暂存区和工作区的文件

删除后提交版本库文件也被删除(git commit -m "解释" 删除文件名 )
9.忽略文件

.gitignore 文件用于告诉 Git 版本控制体系哪些文件和文件夹不需要跟踪。这样可以避免将不必要的文件(如日记文件、编译生成的文件等)提交到版本库中,保持堆栈的整齐和高效。
应该忽略:
体系或软件自动生成的文件
编译产生后的中间文件和效果文件
运行时生成的日记文件,缓存文件,临时文件
涉及身份,密码,口令的敏感信息文件
1.创建一个log文件,提交到版本库

2.忽略掉log文件
   vi .gitignore
  


10.分支
三,远程堆栈下利用

一,简介

GitHub是一个非常盛行的代码托管平台(本身就是基于),世界上凌驾百分之九十的开源项目都托管在GitHub上面。
广泛企业用的是GitLab,国内用Gitee比较多。
二,注册账号

访问(不太稳定,发起利用加速器)
   github.com
  三,创建远程堆栈



记住本身的堆栈地址(复制ssh的)

去本身的项目文件夹中右键进入git命令行
   git clone "本身的地址"
  cd到根目录下的 .ssh目录下
  ssh -keygen -t rsa -b 4096
  按照提示设置密码
  

将本身的公钥内容复制出来


将公钥复制进去

假如是初次配置点击Add SSH key就乐成了
四,主流软件中利用git

pycharm中利用

可以选择不同的代码托管平台,输入本身的GitHub堆栈地址

然后既可以推送和拉取代码了

提交暂存区相当于git add

提交到版本库相当于git commit -m ""

git push 是一个 Git 命令,用于将当地堆栈的更改推送到远程堆栈。这个命令通常在用户提交(commit)了更改之后利用,以便同步当地和远程堆栈的状态

查看远程堆栈

回退版本右键


删除文件后回滚

堆栈修改代码当地拉取


常见的操纵就这些idea和这个利用也差不多假如有机会我再来更新一些其他用法。

四,分支操纵

1.简介

在 Git 中,分支(branch)是一种非常强大的功能,它允许你在同一个代码库中并行地进行不同的开辟工作。
2.分支的好处

1)同时并行推进多个功能开辟,进步开辟服从
2)各个分支在开辟过程中,假如某一个分支开辟失败,不会对其他分支有任何影响。失败的分支删除重新开始。
3.创建分支

   git branch "分支名"
  

4.查看分支


5.切换分支

   git checkout “要切换的分支名”
  

6.删除分支

   git branch -d "要删除的分支名"
  
留意一下删除的时候分支的这条工作树不能在利用状态
7.合并分支


   git merge dev
  

8.解决分支

在合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法更换我们界定利用哪个。必须以为决定新代码的内容
辩论示例:
分支dev先做个修改

master做个修改


合并时辩论

出现辩论时

解决辩论

务必认真阅读:

容易产生辩论的操纵
多个人同时操纵了一个文件
一个人不绝写不提交
修改前不更新最新的代码版本
镌汰辩论的操纵
一定要确保所修改的文件是最新的
各自开辟本身的模块
良好的操纵习惯时先pull再修改,修改完成立刻提交commit和push
不要私自修改公共文件
修改公共文件,一定要确定没有人正在修改
结束工作前提交代码,工作开始时拉取最新版代码

不定期技能分享,请连续关注。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表