首先说明一下我这个文章绝大部分是参考廖雪峰老师的官方网站的Git教程。http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
讲的生动风趣简单易懂有用。送上我的膝盖。
本文主要包含如下几部分:
Git 常用中英文术语
Git 管理流程
Git 本地版本管理
github 版本管理
用批处理语言操作Git
1.Git 常用中英文术语
学程序必须要掌握好常用的英文术语。否则看API及文献就是悲剧。
以下是我觉得常用的中英文术语对照,陆续补充吧:
英文术语 | 中文术语 | 说明 |
---|---|---|
repository | 版本库 | |
remote | 远程 | |
fork | 叉子、分叉 | 复制创建自己的分支 |
push | 推送 | |
2016-11-17 15:11:45 |
2.Git 管理流程
首先要只知道,Git是目前世界上最先进的分布式版本控制系统(没有之一)。
git的工作流程示意图
本地版本库
远程版本库
3.Git 本地版本管理
(1)Git本地管理常用的命令
::创建版本库,文件夹中多了一个 .git 文件 git init :: 版本管理 ::把所有文件添加到暂存区,可以用 .ignore 文件滤去不需要添加的文件 git add . ::把指定文件readme.md添加到暂存区 git add readme.md ::将修改提交到版本库 git commit -m"此处写提交注释" ::撤销掉未保存的修改 git checkout -- readme.md ::撤销掉暂存区的修改(unstage) git reset -- HEAD readme.md ::回退到上一个版本 git reset --hard HEAD^ ::回退到指定版本 git reset --hard (版本号) ::删除提交文件 git rm readme.md::查看状态命令 ::显示所有不同 git diff ::显示指定文件的修改 git diff **** ::查看当前状态 git status ::查看提交日志 git log ::查看所有命令日志 git reflog 1234567891011121314151617181920212223242526272829303112345678910111213141516171819202122232425262728293031
通过上面的这些命令,基本就满足了初级选手对本地版本管理的需求。不过有一个地方需要注意,就是git add .
这个命令是添加所有文件到版本库,但是有些文件我们是不需要进行版本管理的,比如bin文件,Java的 class文件,只要有了源代码,我们就可以通过编译生成。我们当然可以利用 git add (指定文件) 这条命令 一个个文件添加,不过这就麻烦了。我们就可以通过 .gitignore 文件来过滤不需要添加的文件。
(2) .gitignore的使用方法
注意win7不能直接通过修改txt文件来创建 .gitignore文件,而是应该通过git bash。具体方法如下:
在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录。
输入 touch .gitignore 在文件夹就生成了一个“.gitignore”文件。
然后用编辑器打开这个文件进行编辑就行了。
然后就写规则来操作要忽略的文件了。
开放模式负责设置过滤哪些文件和文件夹
过滤文件夹设置:
/bin/ 表示过滤这个文件夹
过滤文件设置
指定过滤某种类型的文件:
*.class
指定过滤某个文件:
/mtk/do.c
/mtk/if.h
4.github的使用
(1)申请一个github账号
和一般的网站注册差不多。
(2)创建一个远程库
直接点一下加号跟着提示操作就好了。创建完成后,会提示如何将本地的版本库推送到远程库。
Quick setup — if you’ve done this kind of thing before Set up in Desktop or HTTPS SSH https://github.com/sunpro/123.git We recommend every repository include a README, LICENSE, and .gitignore. …or create a new repository on the command line
git remote add origin https://github.com/sunpro/123.git git push -u origin master1212
…or import code from another repository You can initialize this repository with code from a Subversion, Mercurial, or TFS project.
(3)操作远程库常用命令
::远程库命令 ::查看当前远程库 git remote ::添加远程库 git remote add origin https://github.com/sunpro/123.git ::删除远程库 git remote rm origin ::将本地版本库推送到指定远程库 git push -u origin master ::将远程版本库克隆岛本地当前文件夹下一个同名文件夹内 git clone https://github.com/sunpro/123.git ::将远程版本库克隆岛本地指定文件夹内 git clone https://github.com/sunpro/123.git 4561234567891011121312345678910111213
注意当我们添加了一个远程库后,如果想换个远程库来添加,可以给远程库起个新名字,也可以把origin库移除后重新添加。
5.批处理Git命令
如果懒得记那么多命令,可以使用批处理(这个理由,姑且吧)。
要想批处理Git命令,首先要将git命令添加到path环境变量。
(1)设置环境变量
首先找到Git的安装文件夹,其中有一个cmd 文件夹
将该文件的地址添加到环境变量,具体是
右击“我的电脑”–> 属性 –> (左侧栏)高级系统设置 –> 高级页面中的“环境变量”–> 在系统变量中双击Path –>在变量值后面将cmd文件的地址加进去。注意该地址前面必须有分号“;”,如果没有需要将分号添加上后再将地址加上。如图是我的效果,注意地址要根据自己的情况来设。
(2)重启电脑
(3)创建.bat 文件
git init git add . git status git commit -m"commited by me"git status pause123456123456
可注意该文件命名,不能命名为“git.bat”,这样会重复执行。。。。
尽量避免与环境变量中的命令冲突,你可以命名为“git123.bat”。
(4)执行批处理文件
你在写了一些代码文件后,将上面的批处理文件复制到你的文件夹内,直接双击执行,效果如下:
(5)一个新的bat文件
后来学习了一下shell语言,重新写了一个bat文件。代码如下:
comm=$1rep=$2#创建本地版本库并提交修改到本地版本库,之后提交if [ -d ./.git ]then echo "git is exsisted!"else git init echo git initfigit add . git commit -m "$comm"#根据第二个参数是否为空,决定是否提交到远程版本库#若第二个参数不为空,则提交到以第二个参数命名的远程版本库,并返回提交结果!if test $repthen #提交至远程版本库 REMOTE=`git remote` #echo $REMOTE if test $REMOTE then #echo remote add if [ $REMOTE=$ORIGIN ] then git remote rm origin fi fi #change the "sunpro" to your repository name git remote add origin https://github.com/sunpro/$rep.git git push -u origin master if [ $? -eq 0 ] then echo push succeed! else echo push failed! fifi1234567891011121314151617181920212223242526272829303132333435363712345678910111213141516171819202122232425262728293031323334353637
只要把该代码远程库地址的用户名改成你自己的github的用户名,保存在你要创建版本库的文件夹下,保存为“gm”(或者你喜欢的任意非命令名字)。这样,打开bash,输入
sh gm.bat "commit message" "your repository name"11
回车,就可以自动创建本地版本库,并提交所有文件,commit的信息为“commit message”(此处你可以根据自己的需求修改),并提交到你指定的版本库。实际效果如下: