Git学习笔记

1.分布式版本控制系统VS集中式版本控制系统
集中式版本控制系统需要一个中央服务器,且需要联网才能工作。
分布式版本控制系统每个人的电脑上都是一个完整的版本库,且安全性比较高。
2.配置git

git config --global user.name "username"
git config --global user.email "email"

–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置
3.创建版本库

mkdir DL
git init  将这个目录变成Git可以管理的仓库
ls -ah 查看这个隐藏的目录下的内容

4.把文件添加到仓库

git add readme.txt

用git add命令后,在工作区的第一次修改被放入暂存区,准备提交
【补充vi编辑模式下保存文件:先按esc,然后输入:wq或者:x】
5.将文件提交到仓库(本地库)

git commit -m "这次的提交说明"

git commit把暂存区的所有内容提交到当前分支。
6.查看工作区的状态,查看变动

git status
git diff

每次提交到仓库后可以用git status再看一下状态再commit
7.git log --pretty=oneline filename.txt命令显示从最近到最远的提交日志,其中前面显示的是SHA1计算出的一个commit id
在这里插入图片描述

8.撤销修改
①撤销在工作区的修改(回到版本库的状态【若未add】或者暂存区的状态【若已add】)

git checkout -- filename.txt

②撤销在暂存区的修改(已经git add到了暂存区)

git reset HEAD filename.txt

③版本回退(已经从暂存区提交到了版本库)

git reset --hard HEAD^这个是回到上一个版本。
再回到最新版本的话需要改成git reset --hard 想回去的commit_id的前几位
此时可以用cat readme.txt查看这个版本的内容。
可以用git reflog查看每次命令

9.删除文件
如果用rm删除了文件,相当于删除了工作区的文件,想要恢复用git checkout -- filename.txt
确实要删除这个文件:git rm readme.txt,再git commit --m "删除操作的描述"

10.远程仓库
SSH

cd ~/.ssh
ssh-keygen -t rsa -C "youremail@example.com"

一路回车,会生成两个文件(SSH的密钥对),一个是私钥id_rsa和公钥id_rsa.pub,然后cat id_rsa.pub打开这个文件,里面放的是公钥,复制后打开gitlab-setting-SSH keys,把这个公钥复制进去,点add key,git知道了我的公钥之后才能确认说这次的代码推送是我本人进行的。
添加远程库
new project-按照说明来
在这里插入图片描述
新建的这个远程库,由于是空的,push的时候使用git push -u origin master。以后再进行推送就可以用git push origin master
(如果本地文件进行修改,然后需要add进暂存区,再commit之后,使用push命令将所有文件push到远端。)
过程中踩的坑:
出现 “fatal: The remote end hung up unexpectedly ” 问题的原因是push的文件过大,用git config --global http.postBuffer 104876000这个扩充git的buffer。
克隆远程库

git clone 啦啦啦啦

分支
master分支是一条线,Git用master指向最新的提交,再用HEAD指向master。
创建一个dev分支,其实就是dev指向master相同的提交,再把HEAD指向dev。dev合master的过程就是将master执行dev的当前提交,

git checkout -b dev   创建+切换分支(相当于git branch dev + git checkout dev)
git branch 查看当前分支
git checkout dev 	切换到master分支
git merge dev  将dev分支合到master分支上(需要切换到master分支执行这一句)
git push origin master 提交该分支到远程仓库
git branch -d dev 删除本地dev分支

其中:git merge dev这种方式是fast forward方式,在merge之后dev分支的信息会丢失,使用git merge --no-ff -m "merge with no-ff" dev这种方式会在merge时生成一个新的commit,方便从分支历史查看分支信息)
处理冲突:
当两个分钟的内容冲突时,merge时就会出现conflict,需要手动编辑。使用git log --graph可以查看分支的合并图。
bug分支:
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值