阿里云开发者社区

电脑版
提示:原网页已由神马搜索转码, 内容由developer.aliyun.com提供.

分布式管理工具git

2024-01-1061
版权
版权声明:
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
简介:分布式管理工具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 keyTitle随便输入,Key粘贴刚才复制的key,然后点击Add SSH key


安装遇到的问题


$ git push origin masterfatal: 'origin' does not appear to be a git repositoryfatal: Could not read from remote repository.Please make sure you have the correct access rightsand 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

目录
相关文章
|
4月前
|
数据可视化开发工具C#
.NET开源、免费、跨平台的Git可视化管理工具
俗话说得好“工欲善其事,必先利其器”,合理的选择和使用可视化的管理工具可以降低技术入门和使用的门槛。今天大姚给大家分享一款.NET Avalonia开源、免费、跨平台、快速的Git可视化管理工具:SourceGit。
|
4月前
|
Linux开发工具数据安全/隐私保护
分布式版本控制git
分布式版本控制git
|
1月前
|
开发工具数据安全/隐私保护git
记录一次使用git工具拉取coding上代码密码账号错误的经历
这篇文章记录了作者在使用Git工具从Coding平台克隆项目时遇到的账号密码错误问题,并分享了通过清除电脑凭证中错误记录的账号密码来解决这个问题的方法。
记录一次使用git工具拉取coding上代码密码账号错误的经历
|
1月前
|
存储算法开发工具
|
2天前
|
SQL缓存测试技术
代码管理工具之GIT:重新温习一下
代码管理工具之GIT:重新温习一下
|
1月前
|
JavaScriptIDE前端开发
前端开发工具配置 nodejs& git& IDE
前端开发工具配置 nodejs& git& IDE
|
1月前
|
开发工具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工具通过命令行的形式
|
2月前
|
开发工具数据安全/隐私保护git
为了方便项目打包,我用Node写了个git-tag工具
为了方便项目打包,我用Node写了个git-tag工具
|
4月前
|
前端开发持续交付开发工具
【专栏:工具与技巧篇】版本控制与Git在前端开发中的应用
【4月更文挑战第30天】Git是前端开发中的必备工具,它通过分布式版本控制管理代码历史,支持分支、合并、回滚等操作,促进团队协作和冲突解决。在前端项目中,Git用于代码追踪、代码审查、持续集成与部署,提升效率和质量。优化协作包括制定分支策略、编写清晰提交信息、定期合并清理分支及使用Git钩子和自动化工具。掌握Git能有效提升开发效率和代码质量。
|
4月前
|
数据可视化小程序Linux
【Linux】自动化构建工具make/Makefile和git介绍
【Linux】自动化构建工具make/Makefile和git介绍
4500