git基础学习

最近大概花了一周时间系统了解了下git的基础知识,这里做个总结

1.git和svn的区别是什么

git属于分布式版本系统,svn属于集中式版本系统。分布式系统中,版本库存放于任意一台电脑(断网时,仍然可以用,因为自己电脑就是个版本库),再选择一台作为分布式版本控制系统(负责管理各个版本库)。集中式系统中,版本库存放于中央服务器(断网时,GG,因为版本库在别人那,自己看不到了),其余电脑连接中央服务器使用。

2.查看系统是否安装了git

$git 

3.为git设置名称,邮箱

$git config --global user.name 'xxx'

$git config --global user.email 'xxx@xxx.com'

4.何为版本库

本质就是一个目录里面的内容,可以用

$mkdir xxx

$cd xxx

$git init 

即可创建一个版本库

5.如何把一个文件放入Git仓库

$git add xxx (此方法可以多次提交 即 git add xxx 回车 git add yyy  也可以  git add  xxx  yyy)

$git commit -m 'xxx'

6.查看仓库当前状态

$git status

7.查看文件具体修改的内容

$git diff xxx

8.查看提交日志

$git log

9.回退上个版本 (git 回退原理是git在版本内部有个执行当前版本的指针HEAD,git通过控制指针进行进退)

$git reset --hard  版本号

10.查看每次命令

$git reflog

11.工作区,版本库和暂存区

工作区是最先开始建立的那个目录xxx

版本库是这个目录里面的包含.git目录的内容

版本库中有个叫stage的是暂存区

其关系如下图:

12.撤销修改

1)$git checkout xxx

文件没放到暂存区,撤销后和版本库一模一样

文件已放到暂存区又做了修改,撤销后和暂存区一模一样

2)$git reset HEAD xxx,$git reset --hard xxx

把文件从暂存区撤销放回工作区

13.删除文件

$git rm xxx

14.删除文件后,立即恢复文件

$git checkout -- test.txt

15.本地仓库与远程仓库GitHub建立ssh连接

$ssh-keygen -t -rsa -C '邮箱'   

登陆GitHub 打开“Account Setting”,在“SSH keys”页面点击“Title”,在key文本框中粘贴id_rsa.pub文件内容,然后点击“Add key”添加key

16.使自己的GIt仓库与远程的Git仓库进行同步

前提:GitHub上新建的仓库,并且千万不要选择,initialize this repository with a README,原因在这个选择里面有写

然后:

$git remote add origin xxx(git的地址,就是git@xxx那长串)

$git push -u origin master  (第一次推送要加-u,以后都可以不用加)

17.分支的创建,查看,切换,合并,删除

创建dev分支:

$git checkout -b dev

查看分支:

$git branch

切换master分支:

$git checkout master

合并dev分支:

$git merge dev

删除dev分支:

$git branch -d dev

强制删除dev分支:

$git branch -D dev

18.解决冲突

假设你和别人同时修改了xxx文件

$git status 可以查看冲突,然后进入文件进行手动修改,修改后,一定要将文件再次add和提交

$git add xxx  和 $git commit -m 'xxx'

19.查看分支合并

$git log --graph

20.当你在工作的时候,突然插入了另一个工作,如修改bug,并且要求立即修改,你可以保存工作空间然后切换分支进行bug'修改

$git stash  (存储工作现场 )

切换分支进行修改bug

回到原来分支

$git stash list  (查看工作现场 )

$git stash pop(恢复工作现场) 等同于  $git stash apply (获取工作现场) + $git stash drop (删除工作现场)

查看工作现场时,可以看到对应的工作现场序号,可根据对应序号恢复工作现场

$git stash apply stash@{序号}

21.查看远程仓库信息

$git remote 

22.查看远程仓库详细信息

$git remote -v

23.git pull 报错 no tracking information时,说明本地分支和远程分支没有创建连接关系,用以下命令创建关系

$git branch --set-upstream-to 分支名称 origin/远程分支名称

24.标签(eg:v1.1.1)

创建标签

$git tag 标签

查看标签

$git tag

创建以前修改的标签

$git log (获取修改的commitId)

$git tag 标签 xxx(commitId)

创建带有说明的标签

$git tag -a 标签 -m 'xx'  xxx(commitId)

查看标签说明

$git show 标签

删除标签

$git tag -d 标签

推送某个标签到远程

$git push origin 标签

推送所有标签到远程

$git push origin --tags

删除远程标签

$git tag -d 标签

$git push origin :refs/tags/标签

25.搭建git服务器

1)安装git

$sudo apt-get install git

2)创建git用户

$sudo adduser git

3)创建证书登录

把自己的id_rsa.pub导入/home/git/.ssh/authorized_keys文件里

4)初始化Git仓库

$sudo git init --bare xxx.git    (bare表明当前git仓库只用于存放,没有.git文件,用户无法再次进行git操作)

5)禁用shell操作

编辑/etc/passwd

git:x:1001:1001:,,,:/home/git:/bin/bash

修改为

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值