要点一览:
· 1.工作场景介绍
· 2.操作介绍
· 3.总结
1.工作场景介绍
本文实现一个本地代码管理,和实现远程代码提交的教程!
我们实现对本地文件的版本管理,以及远程推送和分支管理!
2.操作介绍
我们先创建一个本地代码仓库:
命令:
$git init
//初始化代码库,作为我们本地代码的仓库
接下来我们就来开始自己的工作:
【1】、初始化一个仓库
首先先自己创建一个工作目录:
$mkdir work_space
进入该目录,获得代码库:
$git clone <本地代码库路径>
$git clone <本地代码库路径> <目标目录名>
实例如下:
命令1:
$git clone <代码库路径>
命令2: 可以自己制定本地代码库路径,如果该路径不存在时,则会自动创建
$git clone <代码库路径>
此时我们就获得了一个自己的代码库,之后我们就可以在其中进行自己的开发,可以借助于git实现自己的代码管理了:
这两个目录类似于两个开发人员
自己可以选择一个进入,进行操作
我们进入mygit目录,此时我们可以先查看一下当前的仓库状态信息:
上面提示,当前仓库没有任何要提交的东西,上图中关于分支的概念我们在后面会进行说明!
没有认可东西提交是,因为我们没有编写任何文件,这里我们就编辑一个文件,
程序很简单: 实现一个加法的操作
/*main.c*/
#include
int add(int a,int b)
{
int c = a + b;
return c;
}
int main(int argc,const char * argv[])
{
int a = 10,b = 20;
printf(" a + b = %d\n",add(a,b));
return 0;
}
编译后,我们通过git status 命令再来查看 仓库状态,如下图所示:
从提示信息我们可以看到,main.c a.out 都是"未被跟踪的文件",所谓”未被跟踪的文件“即,还没有纳入git管理的文件
但是通常我们进行代码提交时,或是代码仓库不需要可执行的文件,那么怎么办呢!
git 提供了一种方式可以指定哪些类型的文件不被提交!
操作:
创建忽略文件
$ touch .gitignore
.gitignore文件中记录要排除文件的名字,可以使用*、?、正则表达式
这是我们的.gitignore 文件的的内容,如果还有需要忽略的可以在其中进行添加
好,做好这些之后,我们可以来讲我们的代码添加到git的管理中了!
【2】、跟踪文件
命令:
$git add .
这样就实现了将我们的代码加入git的版本管理中了!
现在我们实现的只是将
"工作目录"下的内容 --添加到-->暂存区,但是还没有 提交到"代码仓库中"。
【3】、提交到代码库
命令:
$git commit -m ”提交信息“
查看提交记录:
$git log
//只显示提交信息的第一行
$git log --pretty=short
到现在我们基本上就完成对代码的管理,但是这还不够,我们优势需要在项目中添加新的功能,但是,有不影响原有的,此时我们需要借助于分支的功能的来实现
【4】、分支操作
分支操作的相关命令:
分支操作:
// 显示分支
$git branch
// 创建分支
$git branch <分支名>
// 切换分支
$git checkout <分支名>
$git chechout - //切换到上一个分支
// 合并分支
$git merge --no-ff <分支名>
//删除分支
$git branch -d <分之命名>
//分支重命名
$git branch -m <源分支名> <目标分支名>
之后切换到该分支下,可以做自己的代码开发
我们在该分支下进行了代码的修改,此时查看仓库的状态
之后我们进行提交
命令:
// 一次性完成add 和 commit 操作
$git commit -am ”提交信息“
操作效果如下:
对比分支差异:
之后进行分支合并操作:
命令:
//切换到主分支
$git cheout master
$git merge --no-ff my_branch
操作效果如下,合并之后有相应的提示, --no-ff参数表示可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
【5】、版本回溯
操作命令:
$git log //查看到当前为止的历史日志!
$git reflog //获得操作历史,查看sha值.
$git resetr --hard <哈希值> //只需要前几位就可以
假如我们想回溯到 chang main.c 这个部分
当前就回溯到了该版本。自己可以查看自己的源代码进行对比
【6】、远程操作
相关命令
$git remote
$git fetch
$git pull //获取新的远程仓库分支
$git push //推送至远程仓库
首先我们现在 开源的代码托管网站上建立一个同名的项目
我之前已有账号,相关的注册等教程可参考网上资源!
之后我们获得地址:
git@git.oschina.net:smartIOT/mygit.git
首先需要为本地仓库添加一个远程仓库的地址:
$git remote add orgin git@git.oschina.net:smartIOT/mygit.git
之后进行推送
$git push -u origin master
出现如下提示:
这是因为 git 链接方式我们使用的是ssh方式,需要公钥的的验证
公钥的添加方式如下,需要在我们的 开源 的代码托管账户中进行添加!
SSH Keys
SSH key 可以让你在你的电脑和 Git @ OSC 之间建立安全的加密连接。
你可以按如下命令来生成sshkey
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"# Creates a new ssh key using the provided email
# Generating public/private rsa key pair...
查看你的public key,并把他添加到 Git @ OSC //git.oschina.net/keys
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
添加后,在终端(Terminal)中输入
ssh -T git@git.oschina.net
若返回
Welcome to Git@OSC, yourname!
则证明添加成功。
添加之后我们进行强制推送:
显示已推送成功,之后到我们的 账户查看,显示已经提交上来了!
$git clone git@git.oschina.net:smartIOT/mygit.git
3.总结
1.主要熟悉,整个工作流程和操作流程,建立整体概念,方便后续的学习和深入!
2.git的相关命令
n git init
n git add
n git commit 配合
n git status 使用
n git branch
n git remote
n git log
n git relog
n git pull
n git push
git clone