git的状态及命令
什么是git
git是一个 ''开源'' 的 分布式 版本控制系统,最先进 最流行 高效的处理从大到小的项目版本管理。
git的状态
已修改
modified //已修改文件但是还没有添加到暂存区
暂存区
staged //添加到暂存区,在下一次添加git仓库列表中
已提交到git仓库
commited //文件已在git仓库中
git命令
初始化一个项目
git init
添加到暂存区
git add 文件名 //添加单条文件
git add . //添加全部修改文件
取消暂存区文件
从暂存区移除文件
git reset HEAD -- 要移除文件名
跳过暂存区直接添加到本地仓库
git commit -a -m '描述信息'
从git仓库中移除同时工作区也移除文件
git rem -f 文件名字
从git仓库中移除但是工作区保留文件
git rm --cached 文件名字
一般我们总会有些文件无需纳入git的管理,也不需要它们总出现在未跟踪文件列表 这种情况下 我们创建一个名为.gitignore的配置文件
该文件中的配置只能影响哪些当前还未交由git来管理的文件
# 开头注释
/结尾 的是目录
/开头 防止递归
!开头 取反
#忽略所有的.a 文件
.a
#跟踪所有的lib.a文件即使在前面忽略了.a文件
!lib.a
#只忽略当前目录下的TODO文件 而不忽略 stu/TODO
/TODO
#忽略任何目录下bulid的文件夹
bulid/
查看提交历史
#所有发提交历史
git log
#只展示最新的两条信息
git log -
回退到指定版本
版本
git reset --hard 版本的id
什么是开源
开发源代码,代码是公开的,任何人都可以去查看,修改和使用开源代码
5种
-
BSD
-
Apache Licence
-
GPL Linux
-
LGPL
-
MIT
- 目前限制最少的协议,唯一的条件 在修改后的代码和发行包中,必须包含原作者的许可信息
- jquery node.js
基于HTTPS将本地仓库上传到GitHub
#将本地仓库和远程仓库进行关联, 并把远程仓库命名为origin
git remote add origin https://github.com/xinglovepeng2019/jxxproject_01.git
#将本地仓库的内容推送到远程的origin仓库中
git push -u origin master
//如果已经推送过 再次推送 git push
基于SSH将本地仓库上传到GitHub
作用:SSH 本地仓库和GitHub之间免登录的加密数据传输
好处:免登录 数据加密传输
SSH 由两部分组成
- id_rsa 私钥文件 存放于客户端电脑中
- id_rsa_pub 公钥文件 需要配置到GitHub中
生成SSH key
-
打开 Git Bash
-
命令 连续敲3次回车 在C:\users\用户文件夹 .ssh 目录中生成 id_rsa 和id_rsa.pub
ssh-keygen -t rsa -b 4096 -C "1219059585@qq.com"
配置SSH key
- 记事本打开 id_rsa_pub,复制里面内容
- 浏览器打开GitHub登陆,点击头像--》settings-》SSH and GPG keys-》New SSH key
- 将 id_rsa_pub文件中的内容,粘贴到key对应的文本框里
- title文本框任意填写名称,来标识key从何而来
检测GitHub的SSH key是否配置成功
git clone 远程仓库地址
查看分支列表
git branch //表示当前所处分支
创建新分支
git branch 要创建的名称
切换分支
git checkout 切换的分支名称
快速创建和切换的分支
#-b创建一个新的分支 checkout切换到刚刚创建的分支
git checkout -b 分支名称
合并分支
功能分支的代码开发测试完毕之后,将完成的代码合并到master分支上
#切换到master分支
git checkout master
#在master分支上运行git merge 命令将分支合并到master分支
删除分支
切换的想要删除的分支名称上
git branch -d 分支名称 //-D 强制删除
分支合并遇到冲突
如果在两个不同的分支中,对同一个文件进行了不同的修改,Git就没法干净的合并它们,我们需要打开这些包含冲突的文件然后手动解决冲突
将本地分支推送到远程仓库
如果第一次将本地分支推送到远程仓库
#将本地仓库和远程仓库进行关联,并把远程仓库命名origin
git remote add origin 远程仓库的地址https://github.com/xinglovepeng2019/jxxproject_01.
git
#将本地仓库的内容推送到远程的origin仓库中
git push -u origin master
//第一次推送分支需要 -u 参数,后面可以直接使用 git push 推送代码到远程分支
查看远程仓库中的所有分支列表
git remote show 远射程仓库名称origin
拉取远程分支的最新代码
git pull