在协作或管理大型项目时,通常会使用git或svn等版本控制系统,但是这些为程序员准备的系统往往对新手很不友好。本文就对基本的git使用做一个简单介绍。
建立云端仓库:
对于初次使用git的同学来说,可能完全不知道该如何上手,这里就从初始化git环境开始讲。
想要使用git系统首先需要有一个git账号,在国内使用gitee(码云)是一个比较不错的方案。首先注册一个码云账号,在码云网站首页点击注册,填入信息即可。
注册界面
然后进入个人工作站,点击右上角十字选择新建仓库,我这里是英文,不过反正就是这个东西。
新建仓库
然后填入建立仓库的信息,填入仓库名,仓库地址,仓库描述等基本信息。
新建仓库
还可以选择仓库为私有仓库还是开源仓库,选择公共的话任何人访问你的主页都可以看到你的代码。然后选择编程语言和gitignore模板,gitignore是指在上传代码的时候忽略的文件类型,比如C语言中构建生成的.o文件等就不会被上传,这样可以减小上传文件的体积,当需要使用的时候使用者进行构建即可。
下面的三个复选框,README指的是自述文件,也就是使用markdown语法描述这个仓库的用途和意义等的文件,可以让使用者更方便理解程序的功能等,当然写可以写一些其他内容。Issue template和Pull Request template时在提交和请求合并时附带的注释内容的模板,用于表示提交或请求合并的关键内容。根据自己的情况选择即可,如果不知道怎么选择那就按上图选择就好。
最后选择分支模型,分支也是版本控制系统的特点之一,可以理解为在开发过程的时间轴中延伸出的一个分支,在分支上进行开发不会影响主线的内容,当分支的内容完成后可以合并到主线。分支可以有几种模型,最基本的是单分支模型,也就是只有一条主线,对程序的所有修改都是在主线上的修改。还有双分支模型,也就是多一条开发分支,在开发完成后合并到主线。还有很多更复杂的分支模型,在此略过。简单起见我们使用单分支模型。
在创建好仓库后,应该在仓库中发现一个.gitignore文件和一个README.md文件,这便是创建仓库自动生成的文件,我们可以在gitee上直接对文件进行修改也可以一会儿在本地修改。方便起见我们就不尝试在线编辑了。
建立好的空白仓库
那么一个基础的空白仓库这样就创建好了。下面我们尝试在本地建立一个仓库,并和云端仓库连接起来,以达到同步的目的。
建立本地仓库:
要在本地管理Git仓库,首先要安装Git管理软件,最常见的是Git Bash,这是一款功能非常齐全并且强大的命令行Git管理软件,在Git官网下载即可。然后进行安装,如果是第一次接触Git,那么安装过程中一直点下一步使用默认配置即可。
Git官网
安装完成后就可以开始新建本地仓库了,新建本地仓库很简单,在你觉得合适的地方新建一个文件夹作为仓库文件夹,建议使用全英文目录,包括在任何开发环境中都是用全英文目录,这是一个好习惯。
新建好文件夹后打开,空白处右键单击选择Git Bash Here,打开Git Bash命令行。
Git Bash Here
打开的命令行窗口
这时候就可以使用命令行来操作Git仓库了,常用的指令如下:
git add [path] #会把对应目录或文件,添加到stage状态
git add . #会把当前所有的untrack files和changed but not updated添加到stage状态,不要漏了后面的英文句点。
git branch AAA #建立分支AAA
git branch #默认有master(也称为主枝)
git branch -r #查看远端库分支
git branch –a #查看当前所有分支(包括本地分支和远端库分支)
git branch –d AAA #删除分支AAA
git checkout AAA #从当前分支切换到AAA分支 (若AAA分支不存在,则自动新建)
git checkout master #(首先切换回主枝)
git checkout -b A origin/A (若本地A分支不存在,则自动新建)
git clone/pull #拉取远程仓库
git config --global user.name XXX #用户名
git config --global user.email XXX #用户邮箱
git config --list #查看用户信息
git commit –m "XXXX" #提交修改,添加注释
git init #在当前目录中生成一个.git 目录
git log #查看修改提交记录
git log --graph #以图形化(节点)展示当前git库的提交信息。
git merge AAA #(将分支AAA与主枝合并)
git push origin [分支名] #推送修改到远程仓库
git remote add origin #连接远程仓库
git reset #撤销修改
git reset [path] 会改变path指定的文件或目录的stage状态,到非stage状态。
git reset 会将所有stage的文件状态,都改变成非stage状态。
git status #查看当前仓库状态
git show xxxxx. #查看指定代码版本信息(show后面为每次提交系统自动生成的一串哈希值,一般只使用前几个字符即可)
man git-<需查询的指令> #(git后面有"-")
以上是比较常用的一部分,整体来说Git的命令还是比较多的,需要的时候可以查询帮助文档。
现在有了一个空文件夹并且在其中打开了Git Bash,输入以下指令初始化仓库:
git init
git init
这条命令会在文件夹下生成一个隐藏属性的.git文件夹,如果执行命令后看不到就在Windows资源管理器view选项卡勾选隐藏的文件。这时候就生成了一个空白的本地仓库。
勾选“隐藏的文件”
然后将远程仓库连接到本地仓库,但是现在直接连接会出现权限问题,因为你并没有在本地添加远程账户,所以我们要首先将自己的Git账户添加到本地,使用以下命令:
git config --global user.name XXX #XXX为用户名
git config --global user.email XXX #XXX为用户邮箱
这里用户名要注意,是用户名不是昵称,不确定的在这查看。
用户名,不是昵称
连接远程仓库并拉取文件:
连接仓库需要使用仓库的https链接或者ssh链接,我们使用https,仓库链接在如下位置:
红框为仓库链接
然后使用git remote命令:
git remote add origin XXX #XXX为仓库链接
这样就连接到远程仓库了,然后尝试将远程仓库中的文件拉取到本地:
git pull origin master #拉取远程仓库的master分支到本地
拉取远程仓库的master分支到本地
显示和上图相似的提示就表示拉取成功了,如果提示没有权限请确认拉取的是自己的仓库,并且链接/用户名/邮箱都正确。
如果是私有仓库,可能会提示输入密码,输入一次后会自动记录,不需要输入第二次,我的已经输入过所以没有弹出。在登陆时要注意的是用户名和上面的用户名一致,密码是登陆gitee的密码。
这时在本地文件夹就可以看到刚刚拉取的文件了
刚刚拉取的文件
提交到远程仓库:
首先我们新建一个文件作为本地对仓库的修改,就在本地仓库里写一个HelloWorld好了。
写一个HelloWorld
这样我们的本地仓库文件夹和远程仓库就已经不一致了,我们对仓库进行了修改,但是对于Git来说,本次修改还没有记录,我们需要将修改提交到本地仓库Git中去:
git add . #添加文件
git commit -m"XXX" #提交改动到本地仓库,XXX为注释内容,一般用来解释本次提交做了哪些更新
提交改动到本地仓库
在本地仓库做了修改之后我们就需要将本地仓库的修改和远程仓库合并了,合并的方式如下:
git push origin master #将本地仓库合并到远程仓库的master分支
将本地仓库合并到远程仓库的master分支
此时在远程仓库中已经可以看到我们做的修改了。
在远程仓库中查看修改
以上就是Git使用的基本操作了,更多高级操作以后会慢慢写,也可能懒得写。
All done!