Git官网
官网下载慢可以用淘宝镜像下载
镜像下载
1、大部分操作在本地完成,不需要联网
2、完整性保证
3、尽可能添加数据而不是删除或修改数据
4、分支操作非常快捷流畅
5、与 Linux 命令全面兼容
代码托管中心的任务:维护远程库
GitLab 服务器
Github
码云
git pull 和git clone的区别
都是往下拉代码,git clone是克隆,git pull 是拉
从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库,叫做clone.(clone是将一个库复制到你的本地,是一个本地从无到有的过程)
从远程服务器获取到一个branch分支的更新到本地,并更新本地库,叫做pull.(pull是指同步一个在你本地有版本的库内容更新的部分到你的本地库)
注意:.git 目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡
乱修改。
git config user.name tom_pro
git config user.email [email protected]
git config --global user.name tom_glb
git config --global user.email [email protected]
信息保存位置:~/.gitconfig 文件
1、就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
2、如果只有系统用户级别的签名,就以系统用户级别的签名为准
3、二者都没有不允许
主分支上
没有提交
更改可以被提交
绿色代表暂存区存在
红色代表修改过还没提交到暂存区
git add 文件名
将工作区的“新建/修改”添加到暂存区
git commit -m “commit message” [file name]
将暂存区的内容提交到本地库
HEAD@{移动到当前版本需要多少步}
git reset --hard [局部索引值]
git reset --hard a6ac91
git reset --hard HEAD^
注:一个^表示后退一步,n个表示后退n步
git reset --hard HEAD~n
注:表示后退n步
在本地库移动HEAD指针
重置暂存区
重置工作区
–hard:三个区全部同步
前提:删除前,文件存在时的状态提交到了本地库
操作:git reset --hard [指针位置]
–hard 参数三个区同步
1、删除操作已经提交到本地库:指针位置指向历史记录
2、删除操作尚未提交到本地库:指针位置使用 HEAD
就是把指针回到文件存在的历史记录
git diff [文件名]
将工作区中的文件和暂存区进行比较
git diff [本地库中历史版本] [文件名]
将工作区中的文件和本地库历史记录比较
不带文件名比较多个文件
分支可以单独开发
分支和分支可以合并,如果冲突必须处理冲突
1、并行推进多个功能开发,提高开发效率
2、支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
git branch [分支名
git branch -v
git checkout [分支名
1、切换到接受修改的分支(被合并,增加新内容)上git checkout [被合并分支名]
2、执行 merge 命令git merge [有新内容分支名]
冲突的解决
1、编辑文件,删除特殊符号
2、把文件修改到满意的程度,保存退出
3、gt add [文件名]
4、git commit -m “日志信息”
注意:此时commit一定不能带具体文件名
哈希是一个系列的加密算法,各个不同的哈希算法虽然加密强度不同,但是有以下几共同点
1、不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定。
2、哈希算法确定,输入数据确定,输出数据能够保证不变
3、哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大
4、哈希算法不可逆
Git 地城采用的是SHA-1算法
哈希算法可以被用来验证文件。
以文件变更列表的方式存储信息。这类系统将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。增量式
Git 把数据看作是小型文件系统的一组快照。每次提交更新时 Git 都会对当前的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。所以 Git 的工作方式可以称之为快照流。
git remote -v 查看当前所有远程地址别名
git remote add [别名] [远程地址]
git push [别名] [分支名]
git clone [远程地址]
效果
1、完整的把远程库下载到本地
2、创建 origin 远程地址别名
3、初始化本地库
pull=fetch+merge
git fetch [远程库地址别名] [远程分支名]
git merge [远程库地址别名/远程分支名]
git pull [远程库地址别名] [远程分支名]
$ cd ~
$ rm -rvf .ssh
$ ssh-keygen -t rsa -C [email protected]
[注意:这里-C 这个参数是大写的 C]
$ cd .ssh
$ ls -lF
$ cat id_rsa.pub
复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG
keys
New SSH Key
git remote add origin_ssh [email protected]:atguigu2018ybuq/huashan.git