##总结常用的Git指令
对于管理软件,使用git和github感觉就是不一样,不在担心换系统,或者找不到项目文件,尤其是一些长期的项目,通过使用git和github联合管理,压根就不在考虑代码存什么地方的。什么时候有了新的想法,更改提交一波就完事。下面是我常用的指令
- git add .
- git commit -m "xxxxx"
- git push
- git branch xxx
- git checkout xxx
默认已经搭建好git和github的使用环境
工作区、缓存区和版本区
其实还是有必要简单了解一下这三个工作区,每一个分支都有这三个区,每一次提交都是从一个区提交到另一个区,一般中间跳过了某一个区,在提交过程中可能出现冲突
基本指令
-
git init
如何想直接从某一个文件夹建一个git仓库,然后提交到远程区,一般第一个指令就是在这个目录下执行git init。最后我会演示一个完整的git仓库建立与远程仓库绑定的步骤。 -
git add .
从工作区提交修改到缓存区,其中 . 代表当前的所有修改过的文件。 -
git commit -m "修改原因等"
从缓存区提交到版本区,可以注明修改原因等其他标注,当然可直接使用git commit到nano界面修改patch。 -
git push
提交到远程仓库,使用这个指令后,在远程仓库,例如GitHub上可以看见刚提交的patch,提交的分支与远程绑定的分支保持一致了。
当提交的分支没有绑定远程仓库时,在使用git push提交时,会提交失败,然后会提示使用什么什么指令设置上游分支,OK,再次提交即可。 -
git branch -a
查看当前本地仓库有多少分支,例如:
当前处在new分支下,这个仓库有四个本地仓库和两个本地仓库绑定的远程仓库。
其他仓库分支整理指令
- git merge 其他分支名
将修改当前分支下的代码,与“其他分支”保持一致。 - git push --delete origin 远程分支名
删除某一个远程分支。 - 修改远程分支名
简单说明一下,修改远程分支名的需求还是经常有,例如有时候发现自己本地的分支或者远程分支取名不是很规范,但是又不能直接修改本地的分支,然后提交(当然也是可行的),所以简单说明一下可行的方法之一。当然有一个前提,有一个本地分支与远程分支绑定的,因为单独修改远程分支名没什么意义,一般都是与本地分支的名一块修改了。
: 第一步:删除绑定的远程分支
git push --delete origin 远程分支名
: 第二步:修改本地分支的名字
git branch -m oldname newname
: 第三步:重新提交
git push
初始化本地仓库和远程仓库示例
说明
这一部分主要是如何快速完成一个本地仓库的搭建,并且绑定自己GitHub上的一个远程分支
本地操作
-
git init
首先新建一个文件夹(空的),使用git init指令初始化这个文件夹。其实就是多了一个隐藏的.git文件。
简单的添加一个README.md文件(随便往里边写点东西)。 -
git add . && git commit -m “初始化”
看了前面的说明,这里基本没什么问题了,就是分别提交修改到缓存区和版本区。 -
git push
第一次会git push失败,下面会给你一些提示,告诉你还需要做什么。例如:
一看,问题描述很详细吧。接下来就需要跑到GitHub上新建一个空仓库。 -
新建一个空GitHub仓库
强调一下“空”,就是建这个仓库时,不要勾选添加README.md了,不是不能添加,主要是按照我的方式,添加后需要其他步骤了。(具体如何建仓库可参考其他blog) -
添加一个远程仓库
git remote add origin git@github.com:xxx/xxx.git
添加刚才在GitHub上新建的仓库。最后git push origin一下就OK了;当然可以使用git push,但是需要绑定一下,使用指令:
git push --set-upstream origin master
这个指令就是为当前分支设置一个上游分支master,就是git push
的某认地方。 -
最后说明
push OK后,可以在GitHub上看见在本地工作区的README.md文件,其内容肯定一样。
以后每次在当前工作区修改后,都需要执行:
git add . —> git commit -m “说明” —> git push
fork仓库
在之前这一段一直没有更新,当fork他人的仓库后,原远程仓库、自己的远程仓库和自己本地的仓库是一个什么关系,以及如何使用各命令保持与原作者的仓库保持一致。
第一次在github上fork别人的仓库直接到自己的github远程仓库,然后通过git clone将fork过来的仓库克隆到本地,当原作者的仓库更新后,如何与原作者保持一致,还需要通过以下几个步骤:
-
git add remote
添加原作者的地址到本地。 -
git fetch --all
fetch原作者的修改到本地,但是该命令执行完之后,本地的仓库还没有更改,可以通过git log查看最新提交不行最新的。 -
git rebase
真正的更新在这一步,将原作者当前最新提交与本地融合。 -
git push
本地仓库通过上过指令执行完之后,自己github上的仓库还没有更新,需要通过此命令更新自己远程的仓库。
体会
关于使用git和GitHub联合管理代码,的确是好用,尤其是平时自己的一些项目,随时有什么想法,随时可以添加,懒得的插U盘懒得到处找以前更改的最新的代码了,直接在终端使用指令即可得到,联合vim简直方便的不行了。早学会早轻松 ?