分布式管理工具git

简介: 分布式管理工具git

git 基本概念


代码仓库:

0613123fae0a14d59d8c39fd8de6c1be_1a00dbc751b34e41b361739a541fc1d4.png


git原理


git 基本原理


76ff5bf07d42561d2d576a5738a0ff74_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oqA5pyv6bG8,size_20,color_FFFFFF,t_70,g_se,x_16.png

workspace 工作区域,本地存放项目代码的区域

Index/Stage 暂存区, 用于临时存放代码,实际上它是一个文件,保存即将提交到文件列表信息

Repostory 仓库区(版本库), 就是安全存放数据的位置,这里面有你提交到所有版本的数据,其中HEAD指向最新放入版本库的版本。

Remote 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换


git 的工作流程


  1. 在工作目录中添加,修改文件;
  2. 将需要进行版本管理的文件添加到(add)暂存区;
  3. 将暂存区域的文件commit 到git 仓库;
  4. 本地的修改push到remote仓库,如果失败执行第五步;
  5. git pull将远程仓库的修改拉取到本地,如果有冲突需要修改冲突。回到第三步;

因此git管理的文件有三种状态:·已修改(modfied),已暂存(staged),已提交(committed)·;


git 中文件四种状态

c2286f2c25cb32b27803e9e7fb092fe3_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oqA5pyv6bG8,size_20,color_FFFFFF,t_70,g_se,x_16.png

Untracked: 未跟踪,此文件在文件夹中但并没有加入到git库,不参与版本控制,通过git add 状态变为Staged.

Unmodified: 文件已经入库,但是并未修改。即版本库中的文件快照内容与文件夹中完全一致,这种状态的文件有两种去处。如果它被修改而变为Modidied.如果使用git rm 移除版本库,则成为Untracked文件。

Modified 文件已修改,仅仅是修改并没有进行其它的操作,这个文件也有两个去处, 通过git add 可进入暂存装填(staged),使用git checkout 则丢弃修改,返回到Unmodified状态。这个git checkout 即从库中取出文件,覆盖当前修改。

Staged 暂存装填,执行git commit 则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Umodified状态。


github 服务端


github 服务器的地址 :http://github.com

想使用github,第一步肯定是要注册github账号,如果有了账户直接登入就可以。


创建登入账户

67bf3a0edb4f9163609750c8a9bc6656_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oqA5pyv6bG8,size_20,color_FFFFFF,t_70,g_se,x_16.png


824663d8d2c1836909a4c86d93d20ce7_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oqA5pyv6bG8,size_20,color_FFFFFF,t_70,g_se,x_16.png


创建工程

b8c1dc858eb8b3984a91bfa41ab291c0_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oqA5pyv6bG8,size_20,color_FFFFFF,t_70,g_se,x_16.png


git 客户端配置


github是服务端,要在自己电脑上使用git我们还需要一个git客户端

windows用户下载链接:git 客户端网站

mac用户下载链接:mac客户端


一路next下来,安装成功,在任何文件夹下鼠标点击右键出现菜单中有 Git GUI here 、 Git Bash here说明安装成功。


fffe480d64b2db89655a65a678092a84_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oqA5pyv6bG8,size_20,color_FFFFFF,t_70,g_se,x_16.png


windows客户端环境搭建


1.查看配置信息 git config list
设置user.name和user.email配置信息
git config --global user.name "你的GitHub用户名"
git config --global user.email "你的GitHub注册邮箱"
2.生成私钥
ssh-keygen -t rsa -C "github登入邮箱地址"
在C:\Users\admin.ssh文件夹中找到id_rsa.pub,将里面所有的内容全部复制出来。
3.在这个网址https://github.com/settings/keys点New SSH key
Title随便输入,Key粘贴刚才复制的key,然后点击Add SSH key


安装遇到的问题


$ git push origin master
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解决方案:
git remote add origin git@github.com:xxxx.git


如何构建本地代码仓库


1.创建一个目录 mkdir dpdk_test

2.进入这个目录 cd dpdk_test

3. 初始一个为普通仓库 git init ,会在文件夹内生成一个隐藏的文件夹".git"

4. 有了仓库后,可以使用git add和git commit 向仓库添加要追踪的文件和提交文件。


命令总结


本地代码仓库操作


仓库中文件默认是不被git 追踪管理。

查看状态 git status


1.添加 git add 是把文件添加到暂存区

通过git add 的方式把path目录下的所有文件添加到git的暂存区,当然这些文件不包含已经被删除的文件。

示例:

$ git add .  # 将所有修改添加到暂存区
$ git add *.cpp   # 将以.cpp结尾的文件的所有修改添加到暂存区
$ git add hello*   # 将所有以Hello开头的文件的修改添加到暂存区,例如: helloWorld.txt,hello.h,helloGit.md ...
$ git add hello?.*   # 将以hello开头后面只有一位的文件提交到暂存区 例如:hello1.txt,helloA.cpp 如果是helloGit.txt和hello.cxx是不会被添加的


2.移除文件

git rm -f 或者 git rm –cached 把文件从暂存区里移除,这里移除并不代码把文件从磁盘上删除了,而是取消git对文件的管理。


3.提交到代码仓库

命令: git commit命令提交到仓库,实现真正的对文件的管理

git commit 用法

321746c8675c82fc0753b0f2d3fea02f_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oqA5pyv6bG8,size_20,color_FFFFFF,t_70,g_se,x_16.png

示例:

git commit -a -m “initial commit”, #把暂存区和当前已被跟踪的文件的所有的修改提交到仓库里,-m参数指定了此次提交的message内容

git commit Makefile Logger.cpp –m “修改编译错误,添加了对log4cpp库的依赖“ # 提交Makefile和Logger.cpp的修改


创建git 远程服务器


一:创建git账号和git用户组


$ sudo adduser git  #添加git用户
 $ sudo passwd git   #添加git的密码
 $ sudo groupadd git #添加git用户组
 $ sudo usermod -G git git #添加git用户到git用户组

二、创建git仓库

$ cd /srv     # srv目录下存放git的仓库
 $ mkdir nginx-docs.git # 创建nginx-docs.git目录
 $ cd nginx-docs.git
 $ git init --bare # bare选项指示该仓库为裸仓库
 $ sudo chown -R git:git /srv/nginx-docs.git # 修改权限为git用户

三、禁止git用户登录shell,这样git通过sh服务登录会被拒绝

002746166c72559ae9815f40b447a22f_21fa3d5b9a694c14b38e104d916b0329.png


四、克隆远程仓库

在文件内部右击选择Bash shell

输入 git clone git@47.106.79.26:/srv/nginx-docs.git

这个过程中需要输入用户名和密码,我们可以通过rsa认证的方式省略掉密码的输入


五、免密输入的配置

就是通过rsa认证,生成公钥和私钥,然后把客户端的公钥告诉git服务器,具体步骤如下:

在客户端机器上,比如我在windows机器上已经配置用户名和密码,打开git bash shell,生成rsa的秘钥对,ssh-keygen –t rsa “github注册邮箱”命令后一路按回车,此时会在c:/Users/lizhiyong/.ssh/目录下生成id_rsa.pub和id_rsa文件,id_rsa.pub是公钥文件,id_rsa是私钥文件


六、 服务器端

在git服务器上:

$ su git

$ ssh-keygen –t rsa

$ touch authorized_keys

然后把客户端的id_rsa.pub追加到这个文件里。这样后,我们就不需要每次都输入git密码了。


代码下载


即clone命令为:  git clone git@<您的 CVM IP 地址>:git仓库路径 
例如   git clone git@47.106.79.26:/srv/nginx-docs.git

下载指定branch 下的代码

git clone -b 分支名 https://gihub.com/*******/****.git


代码提交


代码调整


参考


https://blog.csdn.net/zeng092210/article/details/95622318

目录
相关文章
|
6月前
|
数据可视化 开发工具 C#
.NET开源、免费、跨平台的Git可视化管理工具
俗话说得好“工欲善其事,必先利其器”,合理的选择和使用可视化的管理工具可以降低技术入门和使用的门槛。今天大姚给大家分享一款.NET Avalonia开源、免费、跨平台、快速的Git可视化管理工具:SourceGit。
|
3月前
|
开发工具 数据安全/隐私保护 git
记录一次使用git工具拉取coding上代码密码账号错误的经历
这篇文章记录了作者在使用Git工具从Coding平台克隆项目时遇到的账号密码错误问题,并分享了通过清除电脑凭证中错误记录的账号密码来解决这个问题的方法。
记录一次使用git工具拉取coding上代码密码账号错误的经历
|
3月前
|
存储 算法 开发工具
|
7天前
|
数据可视化 数据挖掘 项目管理
远程团队的高效选择!必备协作工具助力分布式办公
随着远程办公的普及,团队协作面临沟通不畅、任务跟踪困难、协同效率低和反馈滞后等挑战。本文推荐几款高效协作工具,如板栗看板、Trello、Asana和Slack,帮助团队应对分布式协作中的痛点,提升项目管理透明度和沟通效率。
25 1
|
11天前
|
存储 开发工具 git
git工具使用教程全讲解
本文介绍了版本控制的概念及其重要性,详细对比了多种版本控制工具,如VSS、CVS、SVN和Git,重点讲解了Git的基本使用方法、工作原理及与SVN的区别。此外,文章还介绍了GitHub、GitLab和Gitee等流行的代码托管平台,以及如何在这些平台上注册账号、创建和管理仓库。最后,文章还提供了如何在IntelliJ IDEA中配置和使用Git的具体步骤。
32 1
|
1月前
|
开发工具 git
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
38 1
|
1月前
|
存储 开发工具 C#
Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具
Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具
|
2月前
|
SQL 缓存 测试技术
代码管理工具之GIT:重新温习一下
代码管理工具之GIT:重新温习一下
|
3月前
|
JavaScript IDE 前端开发
前端开发工具配置 nodejs & git & IDE
前端开发工具配置 nodejs & git & IDE
|
3月前
|
开发工具 git
成功解决:fatal: detected dubious ownership in repository at ‘E:/workspace/CSMarket‘。如何使用git工具通过命令行的形式
这篇文章分享了作者在使用Git工具初始化本地仓库时遇到的权限问题,提供了通过命令行解决Git仓库权限问题的方案,并介绍了如何使用Git命令行初始化项目、添加文件、提交以及关联远程仓库的步骤。
成功解决:fatal: detected dubious ownership in repository at ‘E:/workspace/CSMarket‘。如何使用git工具通过命令行的形式