【学习笔记】Git
一、git的安装
1.官网: 速度较慢
2.淘宝镜像:http://npm.taobao.org/mirrors/git-for-windows/ 速度快
下载完后直接无脑安装
这一步是选择git的默认文本编辑器,我的选择是vs code
安装完成后,鼠标右键,打开 Git Bash Here 就能看到git的命令窗口了。
安装完成后,自动配置了环境变量。配置环境变量的作用就是保证我们能够全局使用git。
二、Git基本命令
(1)cd :改变目录
cd + 目录名 ,就是进入这个目录。多级目录同理
(2)cd .. :回退到上一级目录
(3)pwd :查看当前在哪个目录
(4)clear :清屏
(5)ls :列举出当前目录下的所有文件和目录
绿色:程序,蓝色:目录,白色:文件
(6)ll :与ls命令相同,都是列举出目录下的所有文件,但ll列举的更加详细
ll列举除了文件的访问权限、创建时间、文件大小、作者等等。
(7)touch :在当前目录下新建文件
(8)rm :删除一个文件
(9)mkdir :新建一个文件夹
(10)rm -r :删除文件夹
rm -rf 代表该目录下的所有文件
rm -rf / 代表删除根目录下的所有文件,相当于删除整个系统,切勿尝试!
(11)mv :移动文件
mv 文件名A 目录名B ,把文件A移动到目录B下
(12)reset :初始化终端
(13)history :查看使用过的所有命令
(14)help :查看帮助
(15)exit :退出终端
三、Git配置
在配置之前,先来查看git的配置
(1)git config -l :查看git的所有配置(包括系统配置和用户配置)
(2)git config --system --list :查看系统配置
系统配置保存在了本地的文件中
本地配置路径:git安装目录\etc\gitconfig
(3)git config --global --list :查看用户配置
用户配置的本质也是保存在本地的文件
文件路径:C:\User\Administrator\.gitconfig
学会看配置后,我们来配置一些用户配置,如用户名和邮箱
git config --global user.name "username" :配置用户名
git config --global user.email "email" : 配置邮箱
四、Git基本理论
下面是git的核心内容
首先介绍四个工作区域:
工作目录(Working Directory):代码的存放目录。
缓存区(index/stage):是一个文件,用于存放你的临时的改动。
资源仓库(Repository):本地Git仓库
Git仓库:远程仓库,github或gitee
工作流程
1.在工作目录中添加、修改文件
2.将需要进行版本管理的文件放入缓存区
3.将缓存区的文件提交到git仓库
五、Git项目搭建
搭建git项目有两种方式:
-
本地仓库搭建
git init :初始化本地仓库
初始化之后,会在目录中多出一个.git目录
-
远程仓库克隆
git clone url :从远程仓库克隆项目
六、Git文件操作
在我们工作目录中存放着我们的代码文件,这些文件有四个状态
Untracked:未跟踪,也就是文件还没有被提交的缓存区
Staged:暂存状态,文件已经被放到缓存区,还没有提交到仓库
Unmodify:文件已入库,未被修改
Modifyed:文件已修改,没有其他操作
git status 这个命令用来查看文件的状态
git status . ---> 查看所有文件的状态
git status 文件名 ---> 查看该文件的状态
举例:
我们工作目录中有一个test.txt文件,先查看它的状态
可以看到是Untracked
我们使用git add .将其提交到缓存区 (git add . 是将所有文件提交到缓存区,如果想要提交某个文件可以直接加文件名即可)
提交到缓存区之后,我们发现这个文件名变成了绿色的,说明它的状态是Staged
然后使用git commit -m “备注信息” 将缓存区中的文件提交到本地仓库
再次查看文件状态,发现没有文件是未提交状态。
七、码云
设置本机远程连接的SSH公钥
-
ssh-keygen :用来生成公钥的命令
执行完这个命令后,找到本地的ssh目录 C:\User\Administrator.ssh,在这个目录中会有两个文件,在id_rsa.pub中就是你的SSH公钥
复制下来后保存到码云设置中。
-
新建仓库
-
把远程仓库克隆到本地
git clone
八、关于分支
分支相当于几个不同的开发路线,每个单独的分支都不影响其他分支的的运行。在上述的例子中我们都在主分支(master)上进行操作。
分支的作用:我们在主分支上运行的同时,想要增加一个功能或修改一个bug,我们就可以把master赋值一份出来,在这个分支上进行编写或修改,完成后进行分支的合并即可。
分支的常用命令
git branch 列出所有本地分支
git branch -r 列出所有远程分支
git branch [branch-name] 新建一个分支,但仍在原来分支运行
git checkout -b [branch-name] 新建分支,并切换到该分支
git merge [branch-name] 合并指定分支到该分支
git branch -d [branch-name] 删除分支
git push origin --delete [branch-name] 删除远程分支
git branch -dr [branch] 删除远程分支
九、最后
-
在主分支master之外新建分支dev,在dev分支下新建文件并编辑。
编辑完成后,如果直接切换分支会有如下错误提示:
您对以下文件的本地更改将被签出覆盖: testBranch.txt 请在切换分支之前提交更改或将其隐藏起来。 正在中止
我们将其add到缓存区,再次切换分支,还是会有上面的错误提示。
然后我们将其commit到仓库,在切换到master就成功了。
在master中合并dev分区,然后push到远程仓库。在远程仓库中可以看到在dev分区编辑的内容。
-
如果远程仓库里有本地仓库中没有的文件,直接push,会报错
更新被拒绝,因为远程包含您所做的工作
提示:本地没有。这通常是由另一个存储库推送引起的
提示:到相同的参考。您可能想首先集成远程更改
提示:(例如,“git pull…”),然后再按。
提示:有关详细信息,请参阅“git push--help”中的“关于快进的注意事项”。
==解决办法是:先pull远程仓库的文件到本地==
然后在add和commit
再次push就行了
push时会报如下错误:
fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use
git push --set-upstream csas master
To have this happen automatically for branches without a tracking upstream, see 'push.autoSetupRemote' in 'git help config'.
原因是没有将本地分支与远程分支关联,可按给出的提示进行修改。
==git push --set-upstream csas master==