前言
git和github
git是用来管理代码的软件,主要用来管理linux内核代码;一般安装在Linux系统的服务器上;
github是管理代码的平台,只支持git的格式,给个人管理自己的代码;相当于只安装了git并且存储空间超大的免费服务器;
git是一个工具,github是git形式使用的平台;就用户使用而言,git和github是一个东西来着,没有区别;
git框架:为了便于管理代码,git将存储代码的结构分为了4个区域如下:
1 操作指令汇总
git clone url #从url所在远程仓库下载代码到本地工作区,默认自动将远程仓库设置标识名为origin git init #工作区新建版本管理会在磁盘生成.git目录,包含了HEAD,index,版本管理的所有信息和配置; git add . #从工作区添加所有文件到暂存区 git rm -r 文件名 #移除工作区和暂存区的文件 git rm -r --cached . #删除暂存区的文件 git reset HEAD #将暂存区的文件同步到工作区 git checkout . #将暂存区的文件同步到工作区 git status #查看工作区和暂存区的状态差别 git diff #查看工作区修改了但是没有添加到暂存区的内容; git diff --cached #查看暂存区当前目录与暂存区提交前的差别? git commit -m "代码注释" #将暂存区的文件提交至本地仓库 git reset --hard HEAD^ #将本地仓库上一次提交的文件同步到工作区 git reset --hard a0d8dde #将本地仓库a0d8dde的提交文件同步到工作区 git pull origin master #将远程仓库拉到暂存区和本地工作区,远程仓库和本地仓库需要是相关的分支; git pull origin master --allow-unrelated-histories #将远程仓库拉到暂存区和本地工作区,允许远程仓库和本地仓库没有关联性; git remote -v #查看远程仓库的信息 git remote rm origin #删除本地仓库和名为origin的远程仓库的连接 git remote add origin url #给本地仓库新建一个远程仓库的连接,远程仓库取名为origin; git push -u origin master #将本地仓库提交到远程仓库;-u表示upstream,将远程仓库设置为本地仓库的上游,之后再push,pull就不用配置远程仓库是哪个了;
#默认远程分支都叫origin,-u origin表示指定("指定"划重点)上传到远程分支origin;之后再上传,就可以省略origin了
#默认本地分支都叫master;如果本地只有master分支,之后push也可以省略master了;
git log --graph #查看本地仓库的提交日志 git reflog #查看本地仓库提交的的注释日志 git reset --hard HEAD #将本地仓库区的文件同步到暂存区和工作区;HEAD就是前面的哈希值复制过来;
2 操作举例
github新建仓库时,不勾选readme文件,则可以本地仓库直接push;勾选了readme文件,则本地仓库需要先pull,然后再push;
2.1 上传文件到github仓库的步骤(无readme.md时)
#1 先在github上新建仓库 #2 在本地目录右键git bash here,新建一个本地版本管理 git init #3 初始化一个版本管理 git add . #4 将本地工作区的文件全部添加至暂存区 git commit -m ".." #5 将暂存区的文件全部提交至本地仓库区 git remote add origin url #6 连接本地仓库至url所在远程仓库,给远程仓库标识为origin;默认都使用origin来命令远程仓库; git push -u origin master #7 将本地仓库master提交至远程仓库origin
2.1.1 继续上传修改后的文件
git add . git commit -m "注释" git push #就这么直接push就可以了,
2.2 上传文件到github仓库的步骤(有readme.md,且本地已经有一个.git版本管理时)
git pull origin master --allow-unrelated-histories #先将远程仓库拉到本地工作区和暂存区; git add . #添加本地工作区的文件到暂存区 git commit -m "注释" #从暂存区提交文件到本地仓库区 git push origin master #从本地仓库区提交文件到远程仓库区
3 参考学习网站
LearnGitBranching https://learngitbranching.js.org/?locale=zh_CN
tryGit http://try.github.io/
Pro Git https://git-scm.com/book/en/v2
https://blog.csdn.net/weixin_33127753/article/details/88870257
4 github配置
git config --global core.autocrlf false #提交时对文本文件的换行符不做转换处理; #window下的换行符为crlf(" "),unix下的换行符为lf(" ");