一、命令行的演示
1.初始化一个代码仓库
- git init
2.如果使用git,必须给git配置用户名和邮箱
给当前的git仓库配置用户名和邮箱
- git config user.name "android"
- git config user.email "wang_lu90125@163.com"
给git配置全局的用户名和邮箱
- git config --global user.name "android"
- git config --global user.email "wang_lu90125@163.com"
备注:如果既有当前配置又有全局配置,会优先使用当前配置,如果没有当前配置,会使用全局配置;
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 "描述"
- 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.解决方案如下:
请输入提交消息来解释为什么这种合并是必要的
imagegit 在pull或者合并分支的时候有时会遇到这个界面。可以不管(直接下面3,4步),如果要输入解释的话就需要:
1.按键盘字母 i 进入insert模式
2.修改最上面那行黄色合并信息,可以不修改
3.按键盘左上角"Esc"
4.输入":wq",注意是冒号+wq,按回车键即可
五、关联远程分支
git remote add origin git@github.com:git_username/repository_name.git
网友评论