文章目录
GIT学习笔记
一.版本管理工具:每一次提交记录为一个版本
版本管理的发展:CVS -->SVN --> GIT
1.CVS阶段的弊端:每一次提交都会提交所有的文件,造成服务器压力—现已完全被淘汰。
2.SVN:每一次提交会和服务器进行对比,提交修改的文件.SVN至今仍然在使用(集中式),但只有一个服务器,在脱离网络的情况下,无法进行相关的操作。
3.GIT:分布式,每一个用户都会有服务器(本地的)—gitlab。GIT是一个分布式的版本控制系统,在Git中即使用户离线,也能进行项目的提交和更新操作(本地服务器),等到下次链接中央服务器是进行整体的同步操作。
二. Git Bash使用(命令行)
1.GIT本地操作
注册gitHub或者码云账号–远程仓库
2.如何将远程仓库和本地进行相关的联系:
第一种:将远程仓库克隆到本地。(先有远程仓库再有本地目录)。
第二种:将本地的开发目录变成远程仓库。
3.获取远程仓库的代码有各种格式:–重点
Clone with https:每次提交远程服务都需要用户名和密码–不常用
Clone with ssh:配置私钥(本地)和公钥(配置给github)
配置秘钥(私钥在本地):
要先配置个人用户信息和电子邮件 地址
git config --global user.name “用户名”
git config --global user.email “你的邮箱”
git config --list (查看所有的配置项)
然后输入如下命令:ssh-keygen -t rsa -C “你的邮箱” –
然后一直按回车到结束。生成ssh
然后就可以配置公钥了
cd ~/.ssh 进入.ssh目录
ls 显示目录内容
cat ~/.ssh/id_rsa.pub 查看文件内容并把输出的内容复制
然后进入github或者码云网站—点击右上角小图片—设置----左侧的菜单里的配置公钥复制进去就行了
git clone https地址或者ssh地址(第一次使用:无到有的使用一次)
git status 查看状态 --对比本地和本地服务器的区别
git add . 从工作区提交暂存区 git add . 提交所有改动的文件。
git commit -m “注释” 暂存区到本地服务器
如果仅仅是文件修改了,一次性到从工作区到本地服务器 git commit -am “提交的注释”
git push origin master 提交远程服务(origin:远程服务器名称 master:主分支)
git pull origin master 更新
3.创建分支
git branch 分支名称 — 创建分支
git checkout 分支名称 —切换分支
git branch —查看分支
git merge —分支合并
4.回滚代码
git log —查看提交日志显示不全,通过回车键显示所有的提交日志
q键退出
git reset --hard commit_id 退到/进到 指定
commit_id指随机的哈希值
git push origin head --force 强推到远程
5.协作
rm:
是仅仅删除working directory里的文件,但若需要删除staging area和HEAD上的文件,需要先执行git add,
然后执行git commit -m “delete xxx”;
或者直接执行一句 git commit -am “delete xxx” ,多加一个"-a"参数,这个参数的功能之一就是将working
directory里删除的文件从staging area中删除.
git rm:
相当于rm + git add, 即working directory和staging area中都删除了该文件
若想推到本地repository只需git commit -m "delete xxx"即可
若想推到远程repository只需git push
git rm --cached:
保留本地文件,仅仅删除staging area中的文件,停止跟踪该文件的变化
在commit的之后repository里也会删除该文件,不再跟踪
当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了, 可以使用
git rm file_path
git commit -m ‘delete somefile’
6.git的常用命令
三.综合应用
1.git pull和git fetch的区别
git fetch相当于是从远程获取最新到本地,不会自动merge.
git pull 相当于是从远程获取最新版本并merge到本地.
2.git merge与 git rebase区别
git merge:将两个分支,合并提交为一个新提交,并且新提交有2个parent。
git rebase:会取消分支中的每个提交,并把他们临时存放,然后把当前分支更新到最新的origin分支,最后
再把所有提交应用到分支上。
四.本地仓库与远程仓库同步(将本地目录变成远程仓库)–重点
1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库
git init
2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件
git add .
3、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明
git commit -m 'first commit'
4、关联到远程仓库
git remote add origin git@github.com:pengshaohua/login.git
5、获取远程仓库的内容与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)
git pull --rebase origin master
6、把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传。
git push -u origin master