Git学习(mac)

Git基础

1.安装与配置

  • 下载与安装:git官网

  • 使用入口:

    • win:右键菜单 git bash

    • Mac: 终端

  • 查看git版本:

    git --version
    
  • 使用Git工作之前,我们需要做个一次性的配置。方便后续Git能跟踪到谁做了修改,我们需 要设置对应的用户名与邮箱地址

    git config --global user.name "your_username"
    
    git config --global user.email "[email protected]"
    
    git config --list 查看所有配置
    
  • 注意 git config 命令的 --global 参数,用了这个参数,表示你这台机器上所有的Git仓库都会 使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

2.Git 文件的三种状态与工作模式

版本控制就是对文件的版本控制,要对文件进行修改,提交等操作,首先要知道文件当前什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

  • Untracked:未跟踪,此文件在文件夹中,但并没有加入到git仓库,不参与版本控制.通过git add 状态变为Staged.
  • Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹完全一致.这种类型的文件有两种去处,如果它被修改,而变为Modified.如果使用git rm 移出版本库,则成为Untracked文件.
  • Modified:文件已修改,仅仅是修改,并没有进行其他的操作.这个文件也有两个去处,通过git add可进入暂存staged状态,使用git checkout,则丢弃修改过,返回unmodify状态,这个git checkout即从库中取出文件,覆盖当前修改!
  • Staged:暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态.执行git reset HEAD filename取消暂存,文件状态为Modified
#查看制定文件状态
git status [文件名]

#查看所有文件状态
git status

#添加所有文件到暂存区
git add . 

#提交暂存区中的内容到本地仓库 -m:提交的信息
git commit -m "信息"

  • 工作区:简单理解为电脑中的目录,比如自己创建的本地目录,就是平时存放项目代码的地方
  • 暂存区:类似一个缓存区,用于临时存放你的改动,事实上它是一个文件,保存即将提交的列表信息
  • 仓库区:就是安全存放数据的位置,这里有你提交到所有版本的数据,其中HEAD指向最新放入仓库的版本工作区,一般会有一个.git文件,它是git的版本库,包含了我们修改提交的信息,一般是隐藏的,mac可以使用comand+shift+. 展开
  • Remote Repository:远程仓库,一般看作第四种状态,托管代码的服务器(github),可以简单的认为是你项目组中的一台电脑用于远程数据交换

版本库又名仓库,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来, 每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可 以“还原”。

然后基本的git工作流程就是:

  1. 在工作中添加,修改文件

  2. 将需要进行的版本管理的文件放入暂存区域

  3. 将暂存区域文件提交到git仓库

    因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

3.本地仓库

什么是仓库?仓库又名版本库,英文名repository,我们可以简单理解为一个目录,用于存放代码的,这个目录里面的所有软件都可以被Git管理起来,每个文件的修改、删除等操作Git都能跟踪到。本地仓库就是未被push到远程仓库的仓库(如github),这个仓库在我们电脑里被git管理。

获取git仓库一般有两种方法:

  • 初始化git 本地仓库,新建一个文件自己把它设置为一个仓库进行管理

    git init <"file url">
    
  • 从github上克隆仓库

    git clone <"github file url">
    

日常使用只需要记住下图6个命令:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XyduZOKt-1688618280955)(/Users/zhangkai/Library/Application Support/typora-user-images/image-20230705161629731.png)]

3.1 初始化本地仓库

  1. 新建一个test文件夹,将其初始化,初始化了一个空的仓库,目录下多了.git目录,.git文件很重要,一般是隐藏的需要手动设置进行显示,它记录了版本的每次改变,关于版本等所有信息都在这个目录里面

    git init /Users/xxx/Desktop/test 
    

2.在之前初始化仓库的文件夹中新建一个Hello.txt文件来测试:先执行git status查看文件状态,通过git status 命令看到此时Hello.txt文件在暂存区中。

3.发现Hello.txt文件未被跟踪,然后我们先执行git add . (.是当前目录所有文件,也可以指定文件名)命令,再执行git status

4.发现Hello.txt已经放入暂存区了,等待提交,这时候再执行git commit -m “加入本次提交的记录说明(注释)方便后续查看提交或改动记录”,最后再一次执行git status查看 ** 可以发现提交暂存区文件到本地版本库中。

发现文件已经提交成功了,没有可提交的文件

5.忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立“.gitignore”文件,此文件有如下规则:

1.忽略文件中的空行或以井号(# )开始的行将会被忽略。
2.可以使用Linux通配符。例如∶星号(*)代表任意多个字符,问号(﹖)代表一个字符,方括号([abc] )代表可选字符范围,大括号( {string1,string2……})代表可选的字符串等。
3.如果名称的最前面有一个感叹号( !),表示例外规则,将不被忽略。
4.如果名称的最前面是一个路径分隔符(/ ),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
5.如果名称的最后面是一个路径分隔符(/ ),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目 录都忽略)。

例如以下这些实例:

*.txt   #忽略所有的.txt结尾的文件
!lib.txt  #但lib.txt除外
/temp  #进忽略项目根目录下的TODO文件,不包括其他目录temp
bulid/  #忽略bulid目录下的所有文件
doc/*.txt #会忽略doc/notes.txt 但是不包括doc/sever/arch.txt

6.时光穿梭机—版本回退

步骤:

1.查看版本,确定需要回到的刻点

指令:git log(log是日志的意思)或 git log --pretty=online (常用)

我们将Hello.txt中内容修改一下再次add和commit

然后我们进行版本回退,首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交645465d...,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

回退上一版本

也可以利用另一种方式:

git reset --hard 提交编号(commit id)

要是不记得刚才的版本号了,可以使用以下命令:

git reflog

3.2 从github上克隆远程仓库

git clone <url>

4.将本地仓库托管到github

1.链接远程仓库到本地(要在当前文件路径下操作)

git remote add origin <远程仓库链接>

2.将本地文件推送到远程仓库

git push 仓库名 分支名
eg:
git push test main

3.输入用户名和密码 但是这种方式github已经禁止了,所以采用token令牌验证

输入用户名
获取token令牌-->github中的settings->developer settings->personal access tokens-->tokens(classic)-->复制tokens
输入密码(用tokens代替密码)

猜你喜欢

转载自blog.csdn.net/m0_47005029/article/details/131573624