1. 下载与安装
下载
-
点击_git官网_进入官网下载,但因为是国外网站,下载速度可能非常的慢
-
点击_github仓库_进入github下载,同样是国外网站,可能无法访问
-
点击_git国内淘宝镜像 _国内下载下载地址,速度正常
安装
点击安装=
设置安装路径
剩下都默认点击next下一步即可完成安装
配置
- 检查是否已配置环境变量
若无git命令,则右键此电脑配置选择属性进行设置
- 初始化用户配置
git config --global user.name "test" #用户名
git config --global user.email "test@qq.com" #用户邮箱
- 查询git的配置
git config --list #查询所有配置
git config --system --list #查询所有系统配置
git config --global --list #查询所有用户配置
- 代理配置(根据实际情况配置)
如果想使用代理,则需要修改代理端口
#http、https全局代理
git config --global https.proxy http://127.0.0.1:[端口号]
git config --global https.proxy https://127.0.0.1:[端口号]
#socks5全局代理
git config --global http.proxy socks5://127.0.0.1:1080
git config --global https.proxy socks5://127.0.0.1:1080
#取消全局代理
git config --global --unset http.proxy
git config --global --unset https.proxy
#只对github.com使用代理,其他仓库不走代理
git config --global http.https://github.com.proxy socks5://127.0.0.1:1080
git config --global https.https://github.com.proxy socks5://127.0.0.1:1080
#取消github代理
git config --global --unset http.https://github.com.proxy
git config --global --unset https.https://github.com.proxy
2. 新建远程仓库
github
1. 登录/注册github,进入个人仓库
2. 新建仓库
3. 完成仓库的建立
3. 本地仓库初始化
新建一个文件夹并打开git bash
创建本地仓库
git init #初始化本地仓库,在当前目录下生成.git文件夹
git init newRepo #指定在newRepo文件夹下初始化本地仓库,生成.git文件夹
在当前目录下生成.git文件夹
指定在newRepo文件夹下初始化本地仓库,生成.git文件夹
4. git相关命令
1. 克隆
在远程仓库中复制仓库的https地址
相关命令
git clone https://github.com/xiaoan-1/test2.git #克隆远程仓库到本地当前目录下
git clone https://github.com/xiaoan-1/test2.git newRepo #克隆远程仓库到新目录下
命令详细使用过程
1、克隆远程仓库到本地当前目录下
2、克隆远程仓库到新目录下
显然git只能克隆远程仓库到空文件夹下,成为本地仓库(生成了.git文件)
2. 存储
相关命令
git status #查询是否有对文件进行再次修改。
git add . #添加当前工作区下的所有文件改动到本地仓库的暂存区中
git add README.md #添加指定文件到本地仓库的暂存区中
命令详细使用过程
1、修改README.md文件,即文件发生的改动
2、 查看当前状态,此时发生了改动但未被存储到暂存区
2、 将改动提交到暂存区
3、查看当前状态,此时改动操作已变绿色,说明改动已经存储到了暂存区
3. 提交
相关命令
git commit -m "这是备注:提交暂存区的改动到本地仓库" #提交暂存区到本地仓库中[-m(message)]
git commit [file1] [file2] ... -m "这是备注" #提交指定文件或者多个文件到本地仓库
命令详细使用过程
1、查看当前提交状态,暂存区的modify修改等待提交
2、提交暂存区到本地仓库,发生错误:请添加提交备注
3、在提交时需要添加备注
4、查看当前提交状态,此刻暂存区的改动已被提交到了本地仓库,本地仓库的数据发生改动
4. 分支
相关命令
git branch #查看本地分支
git branch -r #查看远程所有分支
git branch -a #查看所有的分支
git branch [分支名称] #创建新分支
git checkout [分支名称] #切换分支
git branch -d [分支名称] #删除本地分支
命令详细使用过程
1、查看本地分支、远程分支、所有分支
2、创建分支、切换分支,
注意点:如果是初始化init的空本地仓库,则会没有默认的master分支,所以我们需要先任意add一个文件和commit才有默认的master分支,从而创建其他分支。
3、删除文件,查看其他分支情况,均已删除文件,则工作区是共享的
4、 在其他分支添加文件,添加到暂存区,暂存区存储的修改操作相同,暂存区也是共享的
5、提交到本地仓库,本地仓库发生了变化
6、此时我们再次切换分支到其他分支,却发现README.md文件恢复了
由以上操作过程可以得出结论:
1. 在本地仓库中,不同分支之间本身都是是互相独立的,即每个分支的本地仓库是独立的
2. 在所有分支没有提交commit之前,工作区和暂存区的内容却是共享的
3. 在执行提交后,执行提交的分支本地仓库会发生变化,但其他分支本地仓库会恢复到原有的状态
6. 冲突
git merge [分支名称] #合并其他分支到当前分支
1、操作分支1和分支2的同一个文件,修改为不同的内容,并分别提交
2、尝试合并分支1和分支2,很明显的报错,二者不一致导致了冲突,所以两个分支该听谁的呢?
3、这时候git就会在冲突文件中给出冲突的内容,然后我们只需要自己决定留下哪一部分后,在进行add和commit操作即可(其实“合并”该词并不准确,因为合并后,合并的分支不会自动被删除)
5. 远程
git remote -v #显示所有远程信息
git remote show [remote] #显示某个远程的信息
git remote add [远程别名(名称)] [远程地址] #添加远程
git remote rm [远程名称] #删除远程仓库
git remote rename [旧每次] [新名称] #修改仓库名
git config --global http.sslVerify "false" #解除SSL验证
1、创建一个新仓库,并cd到该目录下
2、当前远程为空,则添加新的远程
3、测试远程连接,错误:
4、解除SSL验证,从新测试,正常显示远程信息
6. 拉取
git fetch [远程名称] #获取远程的主分支
git merge [远程名称]/[远程分支] #合并远程的分支
git merge [远程名称]/[远程分支] --allow-unrelated-histories #第一次合并远程分支(允许不相关仓库)
git pull [远程主机名] [远程分支名]:[本地分支名] #拉取远程仓库,同fetch+merge
git pull [远程主机名] [远程分支名]:[本地分支名] --allow-unrelated-histories #第一次拉取
1、使用fetch拉取远程数据并不会直接修改本地仓库的内容,而是创建了一个远程的主分支,我们需要配合merge去合并远程的分支,才能拉取到仓库内容
2、当我合并远程分支的时候,会发生错误:refusing to merge unrelated histories(拒绝合并无关历史)
意思是:远程的仓库和本地仓库完全不相关,和远程无法建立联系
解决方法:git merge [远程名称]/[远程分支] --allow-unrelated-histories
7. 推送
git push <远程主机名> <本地分支名>:<远程分支名> #将本地的分支版本上传到远程并合并
#如果本地分支和远程分支名相同,可省略冒号和远程分支名
1、执行推送命令
2、因为是上传数据的操作,此时就需要github用户登录,有多种登录选择,比较麻烦,所以我们更常用另一个连接方式(ssh)
SSH秘钥生成
ssh-keygen -t rsa -C "test2@qq.com" #生成ssh秘钥
git remote set-url [远程名] [远程地址] #修改远程的地址
1、三次回车,即可完成秘钥的生成
2、找到秘钥文件获取秘钥
3、复制id_rsa所有文本,并设置github的SSH秘钥保存
4、在github仓库中复制SSH链接
5、修改远程remote的远程地址
6、再次推送后即可修改远程分支的仓库数据