git的安装步骤
安装homebrew
由于M1芯片与Intel芯片存在区别,MacOS先要在opt
目录下建立homebrew
文件夹,接着将目录所属主改为Mac当前用户,方便以后直接用brew
命令进行install
软件,然后复制下载链接,在终端输入后进行安装并解压,随后再将配置文件里的环境变量改过来,保存并使环境变量生效,然后就可以测试Homebrew
是否安装成功,以便后续安装git
。以下是关键步骤的终端执行代码:
$ cd ~
$ sudo mkdir -p /opt/homebrew
$ cd /opt
$ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
$ cd ~
$ touch .zshrc
$ open -e .zshrc
$ export PATH=/opt/homebrew/bin:$PATH
$ export PATH=/opt/homebrew/sbin:$PATH
$ source .zshrc
$ brew --version
git的正式安装
使用终端命令安装git
并且查看git
版本号
$ brew install git
$ git --version
git的使用
初始化
初次使用git
时,在家目录创建一个git_project
目录,用于存放工作区的项目文件
$ cd ~
$ mkdir git_project
$ cd git_project/
接着使用以下两个命令进行用户名和邮箱初始化配置,最好和github所注册的账号统一,以便之后将本地仓库上传到远程仓库。
$ git config --global user.name "用户名"
$ git config --global user.email "邮箱"
然后进行初始化仓库
$ git init
执行完毕后,可按shift+command+.(或者在终端使用ls -a)对该文件夹git_project
的隐藏目录进行查看,可以发现有个.git
的隐藏目录,说明初始化仓库完成。
git工作流程介绍
- 在工作目录中添加、修改文件
- 将需要进行版本管理的文件放入暂存区域
- 将暂存区域的文件提交到
git
仓库
本地仓库操作
基础操作
- 向仓库添加文件
$ touch c++_test1.cpp # 创建文件
$ git status # 查看状态 未添加到暂存区
$ git add c++_test1.cpp # 将文件从工作区添加到暂存区
$ git status # 查看状态 已添加到暂存区
$ git commit -m "第一次提交c++_test1.cpp" # 将文件从暂存区提交到本地仓库
$ git status # 查看状态 已提交到本地仓库
- 修改仓库文件
$ vim c++_test1.cpp # 进行修改
$ git status # 查看状态 已修改
$ git add c++_test1.cpp # 将文件从工作区添加到暂存区
$ git status # 查看状态 已添加到暂存区
$ git commit -m "第一次通过git修改文件并提交到仓库" # 将文件从暂存区提交到本地仓库
$ git status # 查看状态 已提交到本地仓库
- 删除仓库文件
$ rm -rf c++_test1.cpp # 将工作区的文件删除
$ git rm c++_test1.cpp # 通过git将工作区和暂存区的文件删除,即取消跟踪,在下次提交时不纳入提交版本
$ git commit -m "第一次通过git删除仓库文件" # 将文件从仓库中删除
$ git status # 查看状态 仓库中的文件已被删除
查看历史提交
通过git log
可查看历史提交的版本号、分支情况、用户名、邮箱、文件提交日期和每次提交的状态,当然可以加一些参数使分支情况更显而易见,如git log --decorate --oneline --graph -all
表示以图形化的方式每一行显示所有版本和分支标签情况。
reset命令回滚快照版本
git reset --mixed HEAD~
表示既移动HEAD的指向,将其指向上一个快照并且将HEAD移动后指向的快照回滚到暂存区。git reset --soft HEAD~
表示仅仅移动HEAD的指向,将其指向上一个快照。git reset --hard HEAD~
表示既移动HEAD的指向,将其指向上一个快照又将HEAD移动后指向的快照回滚到暂存区并且将暂存区的文件还原到工作区。- 使用
git reflog
可以查看所有提交到git仓库的历史版本ID号,然后使用git reset 版本快照的ID号
可以回滚到指定快照版本,既可以做到往回滚,还可以往前滚。 git reset 版本快照 文件名/路径
表示回滚个别文件。
diff命令查看工作区、暂存区、git仓库之间的不同
git diff
查看工作区和暂存区的不同。git diff 版本ID1 版本ID2
查看提交到仓库中版本1和版本2的不同。git diff 版本ID3
查看提交到仓库中的版本3和当前工作区中的不同。git diff HEAD
查看最近一次提交到仓库中的版本和当前工作区中的不同。git diff --cached
查看最近一次提交到仓库中的版本和暂存区中的不同。git diff --cached 版本ID4
查看提交到仓库中的版本4和暂存区中的不同。
amend命令修改最后一次提交
执行git commit --amend
后git会更正最近一次提交。
rm命令删除文件
git rm 文件名
使用该命令只是删除工作区和暂存区的文件,即取消跟踪,在下一次提交时不纳入版本管理。git rm -rf 文件名
使用该命令可以将工作目录和暂存区中的文件同时删除。git rm --cached 文件名
使用该命令只是删除暂存区的文件,而不删除工作区的文件。
mv命令重命名文件
git mv 旧文件名 新文件名
将旧文件名重命名为新文件名。
git分支
- 创建分支1使用
git branch 分支名1
- 切换分支2使用
git checkout 分支名2
- 创建并切换分支3使用
git checkout -b 分支名3
- 合并分支4到主分支使用
git merge 分支名4
- 删除分支5使用
git branch -d 分支名5
远程仓库操作
以github为例:
- 线上仓库创建
打开创建仓库页面:https://github.com/new 对仓库进行命名和描述。 - 基于
http/https
协议克隆到本地仓库
mkdir project # 创建本地仓库文件夹
cd project/ # 进入到文件夹中
git clone 线上仓库地址 # 使用clone指令克隆线上仓库到本地
- 在本地仓库上做对应的操作(提交暂存区、提交本地仓库)
- 提交到线上仓库
git push
在首次往线上仓库提交内容的时候出现了403
的致命错误,原因为不是任何人都可以往线上仓库提交内容,必须需鉴权。如果蹦出输入用户名密码的界面可输入线上github
的用户名密码,如果没有的话需要修改“.git/config”
文件内容:将[remote "origin"]
一栏的url
里的github.com
前添加用户名:密码@,在设置好用户名密码之后再次尝试git push
命令。
- 拉取线上仓库的文件需使用
git pull
命令
注意:在每天工作的第一件事就是先git pull
拉取线上最新的版本,每天下班前要做的是git push
,将本地代码提交到线上仓库。
另一种上传代码的方式
远程仓库早已创建完毕,新创建的文件需要关联之前的远程文件
- 初始化项目
git init
初始化成功后会发现本地文件夹里多了一个隐藏文件夹.git
。
- 将所有文件添加到暂存区
git add .
- 提交文件到本地仓库
git commit -m "描述"
- 关联
github
仓库
git remote add origin 仓库地址
- 上传本地代码到远程
github
仓库
git push -u origin master