git一些概念与常用的指令

655 阅读4分钟

集中式管理系统

一台或者几台电脑作为服务器。

是内网(局域网)保密性强

如何防止损坏?

容灾备份,异地,同时存放到服务器b,c等等

分布式管理系统

只有一台中央服务器,不过不用来存储,服务器电脑贼鸡儿多

适用性

前端代码迭代次数多速度较快,多用分布式管理系统适合的存储,

github

特性:

是git的实现,并提供了很多额外的功能

git暂存区记录的是变化,而不是新增加的文件

三个概念

工作区:git init的地方,即本地

暂存区:git add的地方 (注意文件被删除后也需要执行一次git add,或者使用gt rm 文件)

主仓库:git commit的地方

指令(括号内容是解释,和适用情况)

git diff 对比 (当前文件提交版本与当前未提交版本的比较信息)

​ --- a/文件 版本1

​ +++b/文件 版本2

​ @@-1,2 +1,3@@ -1,2代表版本a的1到2行,

​ +1,3代表版本2的1到3行

​ @@-1,2 +1,3@@

git diff 版本号 (与某条版本比较)

git log (打印日记,上下键进行页面未显示内容得移动查看) (能进行回滚前的查看,回滚后的审查)

git log -graph (图形化打印日记)

git reflog (打印某些特殊的版本,基本上所有版本都有,在git log 中查找不到时候使用)

git log --pretty=oneline (打印单一的历史信息,去除多余信息)

git reset 版本 (版本回滚)

​ git reset HEAD^ (当前版本的上一个版本)

​ git reset 日志里面的版本号

git reset --hard 版本 ( 强制回滚)

git reset HEAD (将文件从暂缓区拿出来,已经提交到暂存区,不改变修改)

git checkout -- 文件 ( 1.撤销未添加到暂缓区的文件内容的改变=>未提交到暂存区,撤回修改)

​ (2.从暂存区拿出来=>不常用,一般用git reset HEAD 不会记混)

git rm (删除本地文件和暂存区文件 )

新建远程仓库

了解:一个仓库可以连接多个未绑定的公钥,进行仓库共享,多人协作

  1. ssh-keygen -t rsa -C "邮箱" (新建密钥,一路回车,有密钥的请忽略)

2.将github的密钥添加到github上生成,然后创建一个自己的远程仓库,

3.将已经初始化好的项目(git init, git add, git commit -m 东西)然后再执行以下命令:

4.git remote add origin github.com/erduoLeadin… (添加远程库关联)

5.git push -u origin master (提交)

解除远程仓库关联

git remote rm origin

别人的远程仓库

无法提交 git push

需要fork 之后 才能提交

分支操作

在合并之前,主分支的代码和分支的代码是不一样的

git branch 名字 (新建分支)

git branch (显示所有分支)

λ git branch -d 分支名 (删除分支)

git checkout 名字 (切换分支)

git checkout -b 名字 (联合指令,创建并切换)

git merge 分支名 (合并分支) (前提将当前分支commit后,切换回主分支然后才去执行合并其他分支)

bug: 由于当前要合并的分支和主分支代码上有一行或多行发生覆盖或者修改,若不小心覆盖了错误的一部分,出现以下情况。

解决: 打开编译器webstorm或者vscode,将分支内容覆盖,然后将分支的内容再合并一次,实在不行回滚!!

分支管理策略

fast forward(默认): 快进;(快速优先模式,直接git merge)

git merge --no-ff -m "这是第一次使用普通模式的dev分支" dev (普通模式)

新建bug分支操作步骤

当主分支没保存时候,在暂存区保存了某些写代码并且bug增多了,使用该方法,

git stash (暂存 ) (在主分区中采取暂存,因为不知道提交的代码是否有bug)

git branch issue-001 (新建bug分支)

git stash list 暂存列表

git stash apply 回到暂存区 (在分支中回到没有bug的状态)

bug解决:

多人协作编程 (大型项目开发,多人合作项目)

关联的远程库名:一般远程库名显示为master

git remote ( 查看远程库的信息 )

git remote -v (相比较git remote信息更详细)

推送分支

认知点:远程库并不是只有一个master主支。

git push origin master // 把本地的master主支 推送到远程的主支

git push origin dev //把本地的dev分支推送到远程的dev分支上

步骤
  1. git add git commit -m
  2. git remote add origin 远程库名 (关联远程库,可以通过git remote -v 是否有远程库)
  3. git push -u origin master
冲突点:

多人同时向远程库推送信息是不被允许的

解决:

1.git stash (将本地代码先暂存)

2.git pull origin 分支名 (拉取远程库的代码)

3.用编译器将代码覆盖或撤回(与同事讨论,意见不合,.....拔刀吧诸君)

4.git add . git commit -m git push -u origin 远程库名 (执行上述步骤)

第一次总结,后续会写完善~~