首先说明一下我这个文章绝大部分是参考廖雪峰老师的官方网站的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
通过上面的这些命令,基本就满足了初级选手对本地版本管理的需求。不过有一个地方需要注意,就是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
echo "# 123" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/sunpro/123.git
git push -u origin master
…or push an existing repository from the command line
git remote add origin https://github.com/sunpro/123.git
git push -u origin master
…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 456
注意当我们添加了一个远程库后,如果想换个远程库来添加,可以给远程库起个新名字,也可以把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
pause
可注意该文件命名,不能命名为“git.bat”,这样会重复执行。。。。
尽量避免与环境变量中的命令冲突,你可以命名为“git123.bat”。
(4)执行批处理文件
你在写了一些代码文件后,将上面的批处理文件复制到你的文件夹内,直接双击执行,效果如下:
(5)一个新的bat文件
后来学习了一下shell语言,重新写了一个bat文件。代码如下:
comm=$1
rep=$2
#创建本地版本库并提交修改到本地版本库,之后提交
if [ -d ./.git ]
then
echo "git is exsisted!"
else
git init
echo git init
fi
git add .
git commit -m "$comm"
#根据第二个参数是否为空,决定是否提交到远程版本库
#若第二个参数不为空,则提交到以第二个参数命名的远程版本库,并返回提交结果!
if test $rep
then
#提交至远程版本库
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!
fi
fi
只要把该代码远程库地址的用户名改成你自己的github的用户名,保存在你要创建版本库的文件夹下,保存为“gm”(或者你喜欢的任意非命令名字)。这样,打开bash,输入
sh gm.bat "commit message" "your repository name"
回车,就可以自动创建本地版本库,并提交所有文件,commit的信息为“commit message”(此处你可以根据自己的需求修改),并提交到你指定的版本库。实际效果如下: