Git操作 您所在的位置:网站首页 gpg公钥加密 Git操作

Git操作

2023-03-07 04:07| 来源: 网络整理| 查看: 265

目录一、Git命令行操作1.1本地库初始化1.2设置签名1.3基本操作1.3.1 状态查看1.3.2 添加1.3.3 提交1.3.4 查看历史记录1.3.5 前进后退1.3.6 reset的三个参数比较1.3.7 删除文件并找回1.3.8 文件差异比较2.1 分支管理2.2 什么是分支管理2.3 分支的好处2.4 分支操作2.5 解决冲突二、Git 结合Githubgit加速1.1 创建远程库地址别名1.1.1 配置ssh1.1.2 基于ssh上传文件1.2 推送1.3 克隆1.4 拉取1.5 解决冲突1.6 rebase1.7 beyond compare1.8 跨团队合作1.9 Tag标签1.10 SSH 免密登录三、Git工作流1.1 概念1.2 分类1.2.1 集中式工作流1.2.2 GitFlow工作流 *1.2.3 Forking 工作流四、Git 结合idea1. 常见错误:IDEA出现:push rejected2. 配置五、git上传码云1.准备 Git 仓库1.1. 通过网站右上角的「+」号,选择「新建仓库」,进入新建仓库页面1.2. 新建仓库1.3. 打开项目并点击菜单栏上的【CVS】--》【Import into version control】--》【Create Git Repository】创建本地仓库1.4. 在打开的【Create Git Repository】对话框内选择本地仓库的位置,这里我选择项目的根目录。1.5. 右击项目点击【Git】--》【Add】,接着点击【Git】--》【Commit Directory】在打开的窗口中选择要上传到本地仓库的代码并添加注释后提交到本地仓库内。1.6. 右击项目点击【Git】--》【Repository】--》【Remotes...】。在打开的【Git Remotes】窗口中添加码云的远程仓库。码云的远程仓库地址可以在码云仓库内找到。1.7. 点击【OK】后接着输入码云的账号密码。1.8. 上传代码到码云,右击项目点击【Git】--》【Repository】--》【Push...】在打开的【Push commits】内可以看到已提交到本地仓库的提交信息。点击【Push】按钮将本地仓库的代码上传到码云上,上传成功后就可以在码云上看到啦。 托管中心维护远程库

内网:可以自己搭建一个GitLab服务器 外网:可以使用码云、Github

版本控制工具

集中式:CSV ,SVN,VSS 分布式:Git,Darcs,... 一、Git命令行操作 1.1本地库初始化

进入文件夹

git init 注意:生成的 .git 目录中存放的是本地库相关文件,不要删除 1.2设置签名

项目(仓库)级别仅在当前本地库有效

git config user.name tom #设置用户名tom git config user.email [email protected] #设置用户邮箱

系统用户级别仅在当前登录的操作系统用户有效

git config --global user.name tom git config --global user.email [email protected]

仅仅加了一个 --global

优先级别:项目级别 > 系统级别

信息保存位置:~/.gitconfig 文件

1.3基本操作 1.3.1 状态查看 git status #查看工作区、暂存区状态 1.3.2 添加 git add fileName #指定文件 git add . #所有 说明:将工作区的文件添加到暂存区 1.3.3 提交 git commit -m 'commit message' fileName 说明:将暂存区内容提交到本地库 1.3.4 查看历史记录 git log git reflog #常用 git log --greph #图形显示,更直观 git log --pretty=oneline #漂亮一行显示 git log --oneline #简洁显示 说明:HEAD@{移动到当前版本需要多少步} 1.3.5 前进后退

基于索引值推荐

git reset --hard 指针位置 例子:git reset --hard a6ace91 #回到这个状态

使用 ^ 符号只能后退

git reset --hard HEAD^ 例子:git reset --hard HEAD^^ 注意:几个 ^ 表示后退几步

使用 ~ 符号只能后退

git reset --hard HEAD~n 例子:git reset --hard HEAD~3 1.3.6 reset的三个参数比较 soft: - 仅本地库移动HEAD 指针 mixed: - 在本地库移动HEAD指针 - 重置暂存区 hard: - 在本地库移动HEAD指针 - 重置暂存区 - 重置工作区 1.3.7 删除文件并找回 相当于建立一个快照,虽然删除了,但只要添加到暂存区,就能找回 git reset --hard 指针位置 1.3.8 文件差异比较 git diff 文件名 git diff 哈希值 文件名 #和历史中的一个版本比较 git diff #不带文件名,则比较多个文件 2.1 分支管理

hot_fix master feature_x feature_y

2.2 什么是分支管理 在版本控制中,使用推进多个任务 2.3 分支的好处 同时并行推进多个功能开发,提高开发效率 某一分支开发失败,不会对其它分支有任何影响 2.4 分支操作 创建分支 git branch 分支名 查看分支 git branch git branch -v 切换分支 git checkout 分支名 git checkout -b 分支名 #创建分支并直接切换到该分支 合并分支相当于把修改了的文件拉过来 git merge xxx 注意:合并分支的时候要明确谁谁合并 我在a分支里面修改了。要合并到master,就先切换到master,然后合并b 删除分支 git branch -d 分支名 2.5 解决冲突 冲突的表现 冲突的解决 第一步:编辑,删除特殊标记【New SSH key】>输入公钥id_rsa.pub里的内容,标题mySSH,点击确定,即可。

1.1.2 基于ssh上传文件 echo "# pachong" >> README.md git init git add README.md git commit -m "first commit" git remote add origin [email protected]:username/pachong.git git push -u origin master

例子:上传README.md文件

git init:初始化文件夹

-m "first commit":做注释,第一次提交,可修改内容

origin:为远程仓库起的别名

username:自己的github用户名,需要修改

注意:若出现下面这句,表示别名已存在:

fatal: remote origin already exists

解决办法:删掉之前的别名即可

git remote rm origin 1.2 推送

开发修改完把本地库的文件推送到远程仓库 前提是提交到了本地库才可以推送

git push 别名 分支名 git push -u 别名 分支名 #-u指定默认主机 例子:git push origin master 1.3 克隆

完整的把远程库克隆到本地 克隆下来后不要在主分支里面做开发 clone进行一次,从无到有的过程,更新用pull

git clone 远程地址 例子:git clone https://xx.git 1.4 拉取

本地存在clone下来的文件 就用pull更新

pull = fetch + merge git fetch 别名 分支名 git merge 别名 分支名 git pull 别名 分支名 1.5 解决冲突

注意:解决冲突后的提交是不能带文件名的

如果不是基于远程库最新版做的修改不能推送,必须先pull下来安装冲突办法解决

1.6 rebase

提交记录简洁不分叉 没学懂,感觉有点鸡肋 混眼熟

git rebase -i 索引号 git rebase -i HEAD~3 #合并最近三条记录 说明:在vim编辑里面改成s 1.7 beyond compare

用软件解决冲突

1.安装 : beyond compare 2.配置: git config --local merge.tool bc3 #合并名称 git config --local mergetool.path '/usr/local/bin/bcomp' #软件路径 git config --local mergetool.keepBackup false #False不用保存备份 3.应用: git mergetool 说明:--local指只在当前操作系统有效 1.8 跨团队合作

代码review之后合并

适用于个人

邀请成员:Settings --> Collaborators -->填写用户名 -->打开链接接受邀请

企业 创建一个组织 方便管理

review

组织做review 通过Pull request

给开源社区共享代码

点击别人仓库的fork 到自己的仓库 -- > 然后clone下来 修改后推送到远程库 --> 点击Pull Request请求 --> Create pull request发消息

1.9 Tag标签

为了清晰的版本管理,公司一般不会直接使用commit提交

git tag -a v1.0 -m '版本介绍' #创建本地tag信息 git tag -d v1.0 #删除tag git push origin --tags #将本地tag信息推送到远程库 git pull origin --tags #拉取到本地 git checkout v.10 #切换tag git clone -b v0.1 地址 #指定tag下载代码 1.10 SSH 免密登录 输入:ssh-keygen -t rsa -C GitHub邮箱地址 进入.ssh目录,复制id_rsa.pub文件内容 登录GitHub。Settings --> SSH and GPG keys --> New SSH Key 回到git通过ssh地址创建。git remote add 别名 SSH地址 三、Git工作流 1.1 概念 在项目开发过程中使用Git的方式 1.2 分类 1.2.1 集中式工作流 像SVN一样,集中式工作流有一个中央仓库,所有的修改都提交到了Master分支上 1.2.2 GitFlow工作流 *

主干分支master 开发分支develop 修复分支hotfix 预发布分支release 功能分支feature

GitFlow 有独立的分支,让发布迭代过程更流畅。 1.2.3 Forking 工作流 在 GitFlow 基础上, 充分利用了 Git 的 Fork 和 pull request 的功能以达到代码审核的目的。 安全可靠地管理大团队的开发者 四、Git 结合idea 1. 常见错误:IDEA出现:push rejected

如果不成功,可以先删去本地的git文件

操作顺序:创建本地仓库,VCS-->Import into Version Control-->Create Git Repository-->执行下面的指令

在idea按下alt+F12,打开Terminal页面

执行指令:

git pull origin master --allow-unrelated-histories

后面加上 --allow-unrelated-histories , 其实就是把两段不相干的分支进行强行合并

出现该页面说明成功!

* branch master -> FETCH_HEAD Merge made by the 'recursive' strategy. huashangjianfa.txt | 1 + 1 file changed, 1 insertion(+) 2. 配置

在IDEA中设置GitHub,File-->Setting->Version Control-->GibHub,勾选支持ssh

创建本地仓库,VCS-->Import into Version Control-->Create Git Repository...

上传项目到本地仓库:右键项目:git-->+Add-->Commit Directory...-->输入信息,点击commit

上传远程仓库:VCS-->Git-->remotes-->输入远程仓库name,和URL-->点击push ;测试name为origin 成功;

五、git上传码云 1.准备 Git 仓库

码云:https://gitee.com

1.1. 通过网站右上角的「+」号,选择「新建仓库」,进入新建仓库页面

IMG_256

1.2. 新建仓库

img

1.3. 打开项目并点击菜单栏上的【CVS】--》【Import into version control】--》【Create Git Repository】创建本地仓库

img

1.4. 在打开的【Create Git Repository】对话框内选择本地仓库的位置,这里我选择项目的根目录。

img

1.5. 右击项目点击【Git】--》【Add】,接着点击【Git】--》【Commit Directory】在打开的窗口中选择要上传到本地仓库的代码并添加注释后提交到本地仓库内。

img

1.6. 右击项目点击【Git】--》【Repository】--》【Remotes...】。在打开的【Git Remotes】窗口中添加码云的远程仓库。码云的远程仓库地址可以在码云仓库内找到。

img img img

1.7. 点击【OK】后接着输入码云的账号密码。

img

1.8. 上传代码到码云,右击项目点击【Git】--》【Repository】--》【Push...】在打开的【Push commits】内可以看到已提交到本地仓库的提交信息。点击【Push】按钮将本地仓库的代码上传到码云上,上传成功后就可以在码云上看到啦。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有