ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Git 配置和使用

2022-08-22 20:04:35  阅读:117  来源: 互联网

标签:git 仓库 代码 配置 Git ssh 使用 远程


一、Git 介绍: Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软 件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必 服务器端软件支持。 二、Git 与 SVN 区别 Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。 如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概 念和特征。 Git 与 SVN 区别点: • 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,C VS 等,最核心的区别。 • 2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元 信息隐藏在一个类似 .svn、.cvs 等的文件夹里。 • 3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另 外一个目录。 • 4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的 一个特征。 • 5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代 码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。 三、Git 工作原理图: Workspace:工作区 • Index / Stage:暂存区 • Repository:仓库区(或本地仓库) • Remote:远程仓库   四、配置: a) 操作步骤 目前git支持https和git两种传输协议,github分享链接时会有两种协议可选: 1、Clone with SSH 2、Clone with HTTPS git 在使用 https 协议的时候,每次 pull、push 都会提示要输入密码,使用 git 协议,然后使用 ssh,这样可以免去在执行 pull 和 push 的时候次次都要输入 密码的麻烦。 使用 git 协议大致可以分为是三个步骤 1、生成密钥对 2、设置远程仓库上的公钥 3、把 git 的 remote url 修改为 git 协议 第一步:生成密钥对 首先,检查下自己之前有没有已经生成: 在开始菜单中打开 git 下的 git bash(当然,在其他目录下打开 git bash 也是 一样的): 然后执行 ./ssh 如果能进入到.ssh 文件目录下 ,则证明,之前生成过.ssh 秘钥,可以直接使 用里面的秘钥。如果不能进入到.ssh 文件目录下,则: 生成秘钥,输入以下命令: ssh-keygen -t rsa -C ‘上面的邮箱’ 接着按 3 个回车,不需要输入任何东西 :   最后在.ssh 目录下得到了两个文件:id_rsa(私有秘钥)和 id_rsa.pub(公有密 钥)这两个就是 SSH Key 的秘钥对,id_rsa 是私钥,不能泄露出去,id_rsa.pub 是公钥,可以放心地告诉任何人。 输入命令:cd ~/.ssh 进入~/.ssh 目录 输入如下命令查看当前目录和当前目录下的内容 命令 1:pwd 命令 2:ls -l 查看公钥并复制全部: 命令:cat id_rsa.pub 选中全部内容,右击点击 copy 进行复制 第二步:设置远程仓库上的公钥 1.登录 Gitee,进入“设置 复制生成后的 ssh key,点击右上角头像-设置页面进入设置明细,按照下图的操 作即可完成添加公钥 添加后,在终端(Terminal)中输入 ssh -T git@gitee.com 首次使用需要确认并添加主机到本机 SSH 可信列表。若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功。 添加成功后,就可以使用 SSH 协议对仓库进行操作了。 思考:为什么 GitHub 需要 SSH Key 呢? 因为 GitHub 需要识别出你推送的提交确实是你推送的,而不是别人冒充 的,而 Git 支持 SSH 协议,所以,GitHub 只要知道了你的公钥,就可以 确认只有你自己才能推送。当然,GitHub 允许你添加多个 Key。假定你 有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电 脑的 Key 都添加到 GitHub,就可以在每台电脑上往 GitHub 推送了。 声明:向远程仓库提交代码,一般分为两种情况,一种是远程先创建仓库, 一种是本地先创建代码,前者最简单,后者稍微有些麻烦 场景 1:第一次从远程仓库克隆到本地 说明:先有远程仓库,然后第一次克隆到本地后,再开始新增代码的场景 1、远程先创建代码库 请登录 GitHub 自行创建代码仓库,此处直接复制仓库地址 点击复制 git 开头的仓库地址 2、然后克隆到本地 在想要存放代码的目录空白处(此处是 D:\code\gitee)右击打开 git bash 命令 行窗口 输入复制的 ssh 仓库地址 检查是否把远程仓库下载到本地,输入 ls 命令 到此,远程仓库 VIPtest 就被克隆(下载)到本地了 3、开始使用之命令行(新增代码后提交到远程) 此时在本地新增代码 xx.py 文件(可以使用命令行创建文件,也可以使用 pycharm 打开创建),然后开始提交到远程,步骤如下: 1-先进入本地仓库并确认 使用 ls 查看仓库下的文件 2-新建 py 文件,并查看 使用 ls 查看是否有新增的 test.py 3-提交,分为三步: 1>git add . -表示将 workspace 的代码提交到暂存区 2>git commit -m 注释 -表示将暂存区的代码提交到本地仓库,并加注释 (-m 后可以添加此次提交的对应注释说明) 3>git push-表示将本地仓库的代码推送到远程仓库#第一次推送本地代码到远程分支(后期就可以直接使用 git push) 查看远程仓库是否新增该文件,如果有则表示成功。   总结: a) 新建代码库 # 在当前目录新建一个 Git 代码库   git init # 新建一个目录,将其初始化为 Git 代码库    git init [project-name] # 下载一个项目和它的整个代码历史   git clone [url] b) 配置 # 显示当前的 Git 配置     git config --list # 编辑 Git 配置文件        git config -e [--global] # 设置提交代码时的用户信息 git config [--global] user.name "[name]" git config [--global] user.email "[email address]" c) 增加、删除文件 # 添加指定文件到暂存区    git add [file1] [file2] ... # 添加当前目录的所有文件到暂存区   git add . # 删除工作区文件,并且将这次删除放入暂存区    git rm [file1] [file2] .. d) 代码提交 # 提交暂存区到仓库区    git commit -m [message] e) 分支 # 列出当前所在的分支    git branch # 列出所有远程分支       git branch -r # 列出所有本地分支和远程分支     git branch -a # 新建一个分支,但依然停留在当前分支     git branch [branch-name] # 新建一个分支,并切换到该分支     git checkout -b [branch] # 删除分支      git branch -d [branch-name] # 删除远程分支     git push origin --delete [branch-name]        git branch -dr [remote/branch] f) 查看信息 # 显示有变更的文件    git status # 显示当前分支的版本历史    git log g) 合并 1.将开发分支代码合入到 master 中 git checkout dev #切换到 dev 开发分支 git pull git checkout master git merge dev #合并 dev 分支到 master 上 git push origin master #将代码推到 master 上 2.将 master 的代码同步更新到开发分支中 merge 方法:保证主干提交线干净(可以安全回溯) git checkout master git pull git checkout dev git merge master git pull origin dev    

标签:git,仓库,代码,配置,Git,ssh,使用,远程
来源: https://www.cnblogs.com/Wl55387370/p/16614025.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有