这是我参与「第四届青训营 」笔记创作活动的第2天
简介
在本次青训营的大项目准备工作中,由于是小组合作的形式,且为了方便最后代码、文档的统一提交,运用Git,上传Github建立的公开仓库是必要的后勤工作。不仅是此次大项目,在大部分合作编程项目中,这都是必要的技能,也是程序员行业专业性所体现之处之一。
我目前使用的电脑是M2芯片的Macbook pro,然而,在我准备大项目作业,学习安装并使用Git时,我发现一些教程并没有很好的处理该新版Macbook会碰到的问题。所以在此篇文章中,我将总结我碰到的问题及解决方法,该Git安装和使用方法对M1、M2芯片的Macbook均适用。
目录
- 查看现有Git版本
- Homebrew安装
- 从Homebrew下载Git
- 修改环境变量
- vscode本地使用Git
- 从Git到Github
- 总结
查看现有的Git版本
苹果M1、M2芯片的Macbook一般都自带Git,可以打开终端Terminal输入相关指令来查看本机现有Git的安装位置和版本。
查看Git版本:
git --version
查看安装位置:
which git
如果本机上是苹果自带的Git,查看版本时显示的结果应该类似于
git version 2.37.1 (Apple Git-130)
苹果自带的Git是可以使用的,但如gitk等不支持,且风评较为一般,所以很多用户在此基础上想从Git官网下载另外的更普遍使用的Git,下文介绍此过程。
Homebrew安装
查看Git的下载方法可直接在浏览器(推荐Google)中搜索Git,即会看到Git官网,点进去后可以看到对应不同操作系统的下载方法。Windows系统较为方便,但是Mac没有比较方便的下载方法,官网中提供了几种,包括先下载Homebrew,再从Homebrew下载Git,从Xcode下载Git等。我由于Xcode大小十几G太大不方便下载,选择了Homebrew的方法。
Homebrew的安装同样可以直接看其官网,其官网也对 Homebrew进行了介绍,是一款完全免费的,可以 "installs the stuffs you need that Apple (or your Linus system) didn't."
Homebrew的一般的安装指令为打开终端,输入:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
对于操作系统比较特殊或者有特殊要求的用户,可以查看其官网提供的"Alternative Installation" 来选择适合自己的安装方式。我的电脑用以上方式即可安装。
从Homebrew下载Git
由上图可见,Git官网提供的Mac从Homebrew安装Git的指令为:
brew install git
而这正是问题所在,M1、M2芯片Macbook在输入该指令后会报错,称不能从现在的Homebrew上下载东西,建议用户使用Alternative Installation,然而我尝试了下载其他的Homebrew installation仍然会这样报错。
这实际上是因为安装指令错了,Git官网提供的这条安装指令不适用于M1、M2芯片的Macbook,亲测可行的解决方法为将安装指令更改成:
arch -x86_64 brew install git
在M1、M2芯片Macbook上从Homebrew下载包的指令公式是:
arch -x86_64 brew install <package>
修改环境变量
按以上步骤安装好Git后,还会有一个问题需要解决。虽然我们安装了新的Git,但是苹果电脑还是会默认去使用原来苹果自带的Git。因此,我们需要添加环境变量,让电脑去默认使用我们新安装的Git。
首先,在刚刚安装过程中,terminal上显示的安装信息中我们可以找到“Summary”一栏,其中显示了新的Git安装地址,类似于
/usr/local/Cellar/git/2.37.1
记住这个地址以为后面配置路径使用。
然后输入指令打开bash_profile文件修改环境变量:
vim ./.bash_profile
输入i进入编辑模式
添加环境变量:
export GIT=/usr/local/Cellar/git/2.37.1 (刚刚看到的地址)
export PATH=$GIT/bin:$PATH
按esc键退出编辑状态,再按:wq退出bash_profile文件即完成。这时候再从终端查看Git的版本就会发现是我们新下载的Git而不是苹果原先自带的Git了。
vscode本地使用Git
初始化Git环境
开始使用Git需要初始化Git环境,在终端Terminal输入
git init
使用Branch
Git的常用操作之一便是建立branch,在branch上对程序进行调试、修改,这样就不会把原来的程序更改地面目全非,branch上更改到满意的程度后,将该branch commit,然后merge回原来的程序,这样原来的程序就会被更改成该branch的形式,最后为了保持整洁再删除branch即可。
建立branch的一种方法是Commandline输入
git checkout -b branch_name
原来的程序叫master,如果上面的指令没有-b就是在各线之间切换,有-b意思是新建branch。比如从某个branch切换回master就是
git checkout master
检查git状态的指令是
git status
现在在哪个线上,屏幕上显示的就是那个线的代码,此时在代码上作改动就只是在该线上的改动
Vscode还提供了比较简单的建立Branch和切换用户所在位置的方法,不需要Commandline输入,直接点屏幕左下角所在位置的名字的图标即可。(比如下图中现在是master)
在branch上更改完毕后,需要对这个更改进行类似于确认的操作,即commit。在Vscode中,保持在该branch上,选择屏幕左上方那一列选项的第三个,选择左边出来的信息栏的右上角的三个点,点进去可以看到commit
从终端给出指令进行commit的指令是
git commit -m "自己写一条Commit提示语"
之后,我们需要把该branch merge回原来的程序,这样做出的改动就到原来的程序上了。Vscode中同样可以使用上述方法在菜单中选择branch merge,Commandline给出指令是,在回到master的位置之后,输入
git merge branch_name
如果这个branch没用了,可以删除branch,commandline:
git branch -d branch_name
至此,就是branch使用的大致流程。
从Git到Github
诚然,对于真的制作一个大项目,仅在本地使用Git是不够的,我们需要与Github连接。这部分介绍如何从Github上克隆内容到本地,如何在Git中输入自己的Github账户信息,以及如何把自己对于程序的改动Sync到GitHub文件上。
Github克隆内容到本地
首先,我们找到Github上需要克隆下来的内容,比如可能是小组成员写的需要我们来更改添加的代码,复制其链接。
第一种方法是从终端输入指令
git clone <link>
选择好储存地址,会存成一个文件夹,然后Vscode选择“open folder”打开这个文件夹即可以git环境进入该文件,可以完成后续建立branch更改等操作。
第二种方法是直接在Vscode起始页选择“Clone Git Repository“ 然后输入相关链接,Vscode会问是否要直接打开对应文件夹,如选择打开,即与上述open folder的效果相同,可以直接进去操作了。
输入个人Github账号内容
为了后续把更改同步到Github上,我们需要告诉本地自己的Github账号是什么,这样在同步的时候Github上才会显示出是谁做出了相应的改动。
添加Github用户名:
git config --global user.name xxx
添加Github注册邮箱:
git config --global user.email xxx
输入完之后有可能Terminal没有给什么反馈,看起来没有反应,但是可以查看是否已经添加成功。
查看所记录的Github用户名:
git config user.name
查看所记录的Github注册邮箱:
git config user.email
如果显示的就是刚刚添加的,即添加成功
把更改同步到Github
这一步十分简单,在上述步骤完成后(一定要保证更改了的branch merge回master了),再点击vscode左上一列图标的第三个,会看见一个“Sync”的选项,点击就可以同步更改了。
如果不是将Github文件克隆下来进行更改,而是直接把新的内容传到Github上,可以使用指令:
git remote add origin some_url // connect local code to the remote repository
git push -u origin master // push the file to the remote repository
总结
其实Git和Git到Github的使用还是较为复杂的,本文主要关注点在于解决目前少有文章能够统一解决的M1、M2芯片的MacBook在安装Git时碰到的问题。对于具体Git的使用,本文只覆盖了基础的一小部分,以后还需要多多摸索,希望可以再进行更深入的学习之后更新一篇相关的笔记。