Git基础知识

一、命令行的演示

1.初始化一个代码仓库

  • git init

2.如果使用git,必须给git配置用户名和邮箱
给当前的git仓库配置用户名和邮箱

给git配置全局的用户名和邮箱

备注:如果既有当前配置又有全局配置,会优先使用当前配置,如果没有当前配置,会使用全局配置;

3.初始化项目

  • touch README.md :创建README.md
  • open README.md :打开README.md文件
  • git add README.md :将README.md 添加到暂缓区;也就是将工作区中修改过的文件或新添加的文件添加到暂缓区
  • git commit -m "描述“ :将暂缓区的所有内容提交到本地版本库,清空暂缓区
  • git add . :将在工作区的所有不在暂缓区的所有的内容添加到暂缓区;git 一般不使用星号作为通配符,一般使用点‘.’;

注意:添加的文件或者修改的文件都要通过add命令将该文件添加到暂缓区;

4.查看文件状态

  • git status

备注:
1.红色:该文件被添加或者被修改,但是没有添加到git的暂缓区
2.绿色:该文件在在暂缓区,但是没有提交到本地版本库

5.给命令行起别名

  • git config alias.st "status" :给查看状态的status的命令起别名
  • git config alias.ci "commit -m " :给他commit -m 起别名为ci,用的时候直接 git ci "描述“ 即可
  • git config --global alias.st "status" :全局配置status的别名

6.删除文件

  • git rm README.md :删除README.md文件

7.查看版本信息

  • git log :版本号是有sha1算法生成的40位哈希值,查看正常的版本信息;
  • git reflog :可以查看到所有版本回退的信息;

8.版本回退
一种是:本地写了东西,但是没有提交(指的是没有进行过commit命令),可以使用下面的命令直接回退;也就是放弃所有没有提交过的修改;

  • git reset --hard HEAD :回到当前版本(HEAD)就是git的指针;

一种是:写过的东西,已经提交了,使用如下命令:

  • git reset --hard HEAD^:回到上一个版本
  • git reset --hard HEAD^^:回到shag上上个版本
  • git reset --hard HEAD~100:回到前100个版本
  • git reset --hard 版本号(前5位:重复了就6位,依次类推):回到指定的版本号(git reflog得到的版本号);

提示:在git中,版本号是一个由SHA1生成的哈希值

版本回退的操作顺序:
1.git reset --hard HEAD^ :回到上一个版本(A角色)
2.git push -f :A角色强制上传到共享版本库
3.git reset --hard HEAD^ :回到上一个版本(B角色)
4.git pull :B角色再拉下代码,才真正的回退
注意:如果多人开发,想要版本真正的回退,必须合作,必须多人同时回退

9.给log起别名

10.git的工作区-Working directory
仓库文件夹里除.git目录以外的内容;也就是.git的同级目录及同级目录的子目录都是git的工作区,不包裹.git目录;

11.git版本库-Repository
就是.git目录,用于存储记录版本信息;

  • 暂缓区-stage
  • 分支-master:git会自动创建的第一个分支就是master分支;
  • HEAD指针:用于指向当前分支;
二 共享版本库
  • git服务器的搭建非常繁琐(Linux)
  • 可以把代码托管到github/OSChain
  • 一个文件夹
  • 一个U盘

1.一个文件夹作为共享版本库

  • git init --bare :(看到配置里面的config文件,bare=true;且里面无.git文件夹)

2.将共享版本库的所有内容下载到本地的一个文件夹(称为文件夹A)

  • git clone 克隆共享文件夹的地址

3.在文件夹A中创建忽略文件----svn是先创建项目,再创建忽略文件;git是在先创建忽略文件,在初始化项目;

  • touch .gitignore :在工作区中创建此文件
  • git add .
  • git commit -m "添加.gitignore文件"

4.创建项目
将创建的新项目的地址放在2中项目的文件夹A

三 现有项目 再添加版本控制

1.先创建一个代码仓库(比如在GitHub上创建)
2.git clone 上述创建的仓库地址 :clone远程仓库到本地文件夹A中
3.直接把存在的项目拖到文件夹A中
4.git add .
5.git commit -m "描述"

  1. git push [远程主机名] [本地分支名]:[远程分支名]

四 错误修改

  • 4.1 git pull 失败 ,提示:fatal: refusing to merge unrelated histories

在进行git pull 时,添加一个可选项:git pull origin master --allow-unrelated-histories

  • 4.2 git中Please enter a commit message to explain why this merge is necessary,Please enter a commit message to explain why this merge is necessary.解决方案如下:

请输入提交消息来解释为什么这种合并是必要的

image

git 在pull或者合并分支的时候有时会遇到这个界面。可以不管(直接下面3,4步),如果要输入解释的话就需要:

1.按键盘字母 i 进入insert模式

2.修改最上面那行黄色合并信息,可以不修改

3.按键盘左上角"Esc"

4.输入":wq",注意是冒号+wq,按回车键即可

五、关联远程分支

git remote add origin git@github.com:git_username/repository_name.git

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 潮汕卤水配方 原料 : 1、龙骨、老母鸡各7500克,去皮五花肉5000克,肉皮1500克,金华火腿2000克,火...
    廖相晖阅读 2,527评论 0 0
  • 每个店面的情况都不一样,从地域、客流、消费水平等等各个方面都是不同的基础,那么存在的问题也就大不相同。所以...
    城市格调刘姣阅读 121评论 0 0
  • 我是高大花 很高兴遇见你You Belong With Me你属于我 1 Whe...
    是高大花呀阅读 260评论 0 2
  • 更新 在"/etc/yum.repos.d/nginx.repo"创建内容为: 不管怎么说,nodejs都被我搞定...
    老欧阅读 313评论 0 1
  • C#7.0 中新增了非常有用的新功能,如果您是.NET开发者,建议花些时间来了解这些新特性。 1、Out 变量 在...
    liuyuedeyu阅读 347评论 0 0