Git跟传统的代码管理器(如SVN)不同, 主要区别在于git多了个本地仓库以及缓存区,所以即使无法联网也一样能提交代码。名词解释:
工作区间: 即我们创建的工程文件, 在编辑器可直观显示;
缓存区: 只能通过Git GUI或Git Shell 窗口显示,提交代码、解决冲突的中转站;
本地仓库: 只能在Git Shell 窗口显示,连接本地代码跟远程代码的枢纽,不能联网时本地代码可先提交至该处;
远程仓库: 即保存我们代码的服务器,本文以公共版本控制系统:github为例,登录github账号后可直观显示;
提交到远程仓库的原理图
相关指令:
git init
git add README.md
git commit -m "首次提交代码"
git remote add origin https://github.com/wteam-xq/testGit.git
git push -u origin master
指令解释:
git init
表示在当前的项目目录中生成本地的git管理;
git add README.md
将“README.md”文件保存至缓存区,实际开发中一般使用 git add -A
,使用-A:将新增、删除、修改的文件改动全保存至缓存区;
git commit -m "first commit"
将代码从缓存区保存至本地仓库,实际开发中一般使用git commit -am "说明的文字"
,使用 -a:如果没文件更改操作(增、删、改名)就可以省略git add指令;
git remote add origin [https://github.com/wteam-xq/testGit.git](https://github.com/wteam-xq/testGit.git)
将本地仓库与指定的远程仓库创建 联系;
push -u origin master
将本地仓库代码推送至远程仓库,实际开发中 该指令后需要输入github 账号以及密码。(首次提交注意别遗漏-u
指定默认主机)
以上指令正常执行后, 本地仓库的代码就提交到远程仓库了:
流程图:流程解读:
git add
:当你对仓库内容进行修改,删除,添加时
通过git status
可以看到以下内容
//在主分支上
On branch master
//你的分支比远程分支(origin/master)多一次提交
//使用``git push``命令来发布你本地的提交
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
//改变没有被提交:
//(使用“ git add / rm <文件> ...”更新将提交的内容)
//(使用“ git restore <文件> ...”放弃工作目录中的更改)
//删除:hahahah.java(改变的内容)
//删除:readme.txt(改变的内容)
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: hahahah.java
deleted: readme.txt
//未跟踪的文件:
// (使用“ git add <文件> ...”来收入将要提交的内容)
//HelloWorld.java
Untracked files:
(use "git add <file>..." to include in what will be committed)
HelloWorld.java
//没有添加任何更改去提交(使用“ git add”和/或“ git commit -a”)
//(补充)加的-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到
//(补充)本地仓库,即使它们没有经过git add添加到暂存区,注意
//(补充)新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。
//(补充)建议一般不要使用-a参数,正常的提交还是使用git add先将要改动的文件
//(补充)添加到暂存区,再用git commit 提交到本地版本库
no changes added to commit (use "git add" and/or "git commit -a")