7.30日更新

git checkout -b testbuffer //新建分支用于测试buffer对代码进行修改git checkout master //切换回master分支git checkout -D testbuffer //强制删除没有合并的分支testbuffer打开代码发现,此时的代码是testbuffer分支中更改的代码,并没有切换回master分支的代码
分析:在testbuffer中更改的代码,没有进行add 和 commit,不属于任何一个分支,属于工作区
解决方案:在删除分支前,在分支里进行add和commit
或者删除分支后(没有进行add和commit),以git checkout . 放弃工作区中的内容

--------------------------------------------------------------------------------------------------------------------------------

前言:实习期的第一篇,更新一下git工具的使用,之所以选择coding而不是github是支持国产、私有代码仓库不收费,还有就是公司用什么。我想除了付费用github私有仓库之外,总没有多少公司将自己的核心代码做成开源吧。哈哈哈哈哈哈。

1. 本地的操作

//提交时的标识,global表示是全局变量,应用于本机上的所有仓库,也可以为每个仓库单独配置
git config --global user.name ‘###’  //配置用户名
git config --global user.email ‘###’  //配置邮箱//查看当前仓库的用户名、邮箱设置
git config user.name
git config user.emial
//将当前目录作为git管理的仓库
git init//将工作区文件提交到暂存区
git add <filename>或git add .//将暂存区文件提交到版本库
git commit -m '本次提交的描述'

查看状态

git status  //查看当前的状态输出的内容含义:
//工作区没有进行任何修改
On branch <分支名>
nothing to commit, working directory clean//修改或删除文件没有提交到暂存区
Changes not staged for commit:modified: <filename>  //修改文件deleted:  <filename>  //删除文件//新建文件没有提交到暂存区
Untracked files:<filename>//增删改文件提交到了暂存区还未提交到版本库
On branch <分支名>
Changes to be commited:new file:  <filename>  //增加文件deleted:   <filename>  //删除文件modified:  <filename>  //修改文件

比较差别

git diff  //比较工作区和暂存区的差别
git diff <filename>  //比较工作区和暂存区对于指定文件的差别git diff --cached 或 git diff --cached <filename>  //比较暂存区和版本库git diff HEAD 或 git diff <分支名>
git diff HEAD <filename> 或 git diff <分支名> <filename>
//比较工作区和版本库 (HEAD为指向当前分支的指针,所以使用HEAD和使用<分支名>等效)

版本回退

//回退commit,即将上一个版本从版本库载入暂存区,工作区不变
git reset 或 git reset --soft
git reset --hard  //回退commit和add,即将上一个版本从版本库载入暂存区和工作区
git reset HEAD或git reset HEAD^  //回退到上一个版本
git reset HEAD^^  //回退到上上个版本,以此类推
git reset HEAD~100  //向前退100个版本
git reset <版本号>  //回退到<版本号>对应的版本
git reset --hard指定回退的次数类似于git reset

查看日志(包含版本号)

git log  //显示所有提交过的版本信息,不包括已经被删除的commit和reset操作
git log –-pretty=oneline  //使得版本信息一行显示//显示所有的操作记录,包括commit和reset回退的操作,
//一般用来找出操作记录中的版本号进行回退。
git reflog  

放弃修改

git checkout或git checkout --<filename>
//两种情况:
//1.<filename>自动修改后,还没有放到暂存区,使用撤销修改就回到和版本库一模一样的状态。
//2.<filename>已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。

分支(分支策略:master主分支应是非常稳定的,一般情况下不允许在master上干活,而在新建的例如dev分支上干活,待dev分支代码稳定后合并到主分支master上来。)

git branch  //查看分支
git branch name  //创建分支
git checkout name //切换分支
git checkout –b name  //创建+切换分支git merge name  //合并某分支到当前分支
//合并分支时git一般使用”Fast forward”模式,该模式删除分支后会丢掉分支信息,
//一般使用带参数 –-no-ff来禁用”Fast forward”模式
git merge --no-ff (-m "merge with no-ff") name  (括号内为可选,为此次合并的描述)git branch –d name//删除分支

保持工作现场和恢复

git stash (sava "message")  //保存现场,可选项为保存的注释
git stash list  //所有保存的记录列表
git stash pop (stash@{num})  //恢复同时删除该条stash
git stash apply (stash@{num})  //恢复但不删除该条stash
git stash drop (stash@{num})  //删除该条stash
git stash clear  //删除所有stash

2. 远端的操作

1)  从头开始,空文件夹内初始化本地仓库,关联到空的远程仓库(,推送第一个提交)

touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/tugenhua0707/testgit.git
git push origin master

push和pull

//推送到分支<branch-name>,可以是master也可以是其他分支例如dev
git push origin <branch-name>
//添加了参数-u后,以后git push代替git push origin master
git push -u origin master
//(慎用)强制推送,本地覆盖远端,之前在远端的提交记录也会被覆盖掉
git push -f origin master//(重要)拉取更新
git pull (origin <branch-name>)

查看远程库信息

git remote  //查看远程库信息
git remote –v  //查看远程库详细信息

2) 已有本地仓库,关联到远程仓库并提交

git init
git remote add origin https://github.com/tugenhua0707/testgit.git
git add .
git commit -m 'aaa'
git push -f origin master
//强制合并,建议第一次上传时使用,因为新建的远程仓库和本地仓库可能会有不一样的历史禁止push和pull

3)从远端克隆一个本地仓库

//若远程仓库名test1,则在本地生成了文件夹test1,
//其中包括远程仓库test1中的文件和.git文件夹
git clone https://github.com/tugenhua0707/testgit.git

3. 多人协作

一般模式:本地的master分支是主分支,要时刻与远程同步,本地修复bug的分支要先合并到本地的master上并删除分支,再提交到远端master。

//获取更新同步本地和云端master
git pull
做一些修改
git add .
git commit -m 'sssss'
git push

冲突:员工A(自己)与员工B与远端master同一个版本同步后,B做了修改、提交并同步到远端,之后A也做了修改、add、commit,此时无论执行push还是pull都会产生冲突,可以执行以下操作:

git status   //查看本地的修改
git stash   //隐藏掉本地修改
git pull    //从代码库拉取更新
git stash pop stash@{版本号}  //恢复现场
git add、git commit、git push  //完成提交和同步

对于远端分支的使用:

1)远端有一个master分支,没有devvv分支(其他分支不详)。在本地创建了devvv分支后推送到远端,则远端有一个master分支和devvv分支。

git clone https://github.com/tugenhua0707/testgit.git
git branch  //此时本地只可以看到master分支
git checkout -b devvv
做一些修改
git add .
git commit -m 'sssss'
git push origin dvvv

2)远端有一个master和devvv分支(其他分支不详)。在本地创建devvv分支关联远端devvv分支(此时它们内容一样)之后即可进行修改提交和推送。

git clone https://github.com/tugenhua0707/testgit.git
git branch  //此时本地只可以看到master分支
git checkout -b devvv origin/devvv  在本地创建devvv关联远端的devvv分支
做一些修改
git push origin devvv

或者

git init
git remote add origin https://github.com/tugenhua0707/testgit.git
git fetch origin code_annotation //拉取分支(但不和master合并,不同于pull)
git checkout -b devvv origin/devvv  在本地创建devvv关联远端的devvv分支
做一些修改
git push origin devvv

4. https url和ssh url连接方式

https url:无需配置,使用简单;每次pull、push、clone等操作需要输入账号和密码

ssh url:需要项目拥有者配置;每次pull、push、clone等操作无需输入账号或密码

两种方式的设置:

1)https url方式:

直接在克隆或者添加远端库时,使用https开头的仓库地址

git clone https://github.com/tugenhua0707/testgit.git
//或
git remote add origin https://github.com/tugenhua0707/testgit.git

2)ssh url方式,在本地git上输入的指令是相似的,仓库地址以git@开头

git clone git@e.coding.net:tugenhua0707/testgit.git
//或
git remote add origin git@e.coding.net:tugenhua0707/testgit.git

需要项目“拥有者” 在仓库设置,部署公钥中添加 你所使用的设备的公钥

公钥是一串字符,在用户主目录的.ssh目录下

其中id_rsa是私钥,id_rsa.pub是公钥,将公钥中的字符串复制到CODING中即可(上上图)。之后再push或者pull时,就不用再重复输入CODING的账号或密码了。

5. 参考的博客

https://www.cnblogs.com/seven-ahz/p/7712125.html

https://blog.csdn.net/duyiweilan/article/details/54949350

https://blog.csdn.net/neve_give_up_dan/article/details/96198010

https://blog.csdn.net/chenpuzhen/article/details/92084229

https://www.jianshu.com/p/b03bb5f75250

https://www.cnblogs.com/taohuaya/p/10642988.html

https://www.cnblogs.com/zwh9940/p/9315221.html

https://www.jianshu.com/p/16adec527aed

https://blog.csdn.net/QIANG123___/article/details/97264666?utm_source=app&app_version=4.11.0&utm_source=app

Git工具和CODING平台相关推荐

  1. pycharm git工具与coding.net结合

    pycharm git工具与coding.net结合 前提:coding.net中的项目是私密项目 问题描述:在使用pycharm自带的git工具clone(或者push)代码时出现 错误如下: Pu ...

  2. Python 数据分析 git 工具使用 flask学习

    git工具使用 1. git 2. gitee 免密登录 3. pycharm 上使用git 4. 绘制数据看板前的预热(给数据/数据接口在前端页面进行渲染) 后端渲染: 前端渲染: 利用echars ...

  3. idea如何将本地项目上传到coding平台管理

    管理代码的平台和工具很多,coding(码市)就是一个不错代码管理平台,现在就让我们把本地项目上传到coding上吧. 第一步,首先,我们去coding平台注册账号,并在平台上创建项目 复制你项目的s ...

  4. VS Code 0.5添加ES6支持和Git工具改进

    微软多平台Visual Studio 工具VS Code在7月的这次更新中提供了惠及好几种语言的开发者的多项更新.对ECMAScript6 (ES6)的支持就是其亮点之一,另外,所有用户还会发现另一些 ...

  5. Git及其代码托管平台GitHub、码云

    目录 1 Git简介 2 Git使用​ ​ 3 远程仓库 4 分支Branch 5 码云的静态页面托管 6 在IDEA中使用Git 1 Git简介 Version Control System,简称为 ...

  6. 分布式管理控制系统Git与项目托管平台Github相关概念、工作流程与操作方法

    尐轩web前端技术博客 -- 丛培森 Payen S.Tsung --There's no place like 127. 0. 0. 1 目录视图 摘要视图 订阅 CSDN学院招募微信小程序讲师啦  ...

  7. 腾讯云Coding平台入门指引

    目录 Coding devops 登录coding 创建项目 邀请成员 创建代码仓库 新建制品库 docker仓库 maven仓库 npm制品库 持续集成 内建环境变量 Java基础镜像制作 创建持续 ...

  8. coding平台简易操作

    一.准备工具.准备镜像文件 一般使用 win端的 docker客户软件,拉取镜像,配置完毕后,进行推送平台 二.登录coding平台,找到制品管理–>制品仓库-选择指引 注意:要是没有制品库,说 ...

  9. 测评:腾讯Coding平台好不好用?

    这篇文章我们将介绍软件研发管理平台Coding的功能.价格,以及优劣势分析,国内外同类型的IT管理工具盘点. 一.研发管理工具 Coding 简介 深圳市腾云扣钉科技有限公司(CODING)成立于 2 ...

最新文章

  1. 结合领域驱动设计的SOA分布式软件架构
  2. 六年级计算机应用计划,2016年小学六年级信息技术教学计划 (800字)
  3. Linux(Ubuntu)设置系统时区
  4. 关闭IE窗口时执行事件
  5. iframe跨域与session失效问题
  6. 领域驱动设计实践合订版(战略+战术)
  7. kotlin学习---Field
  8. 计算方法复习提纲-中
  9. GC overhead limit exceeded问题
  10. nginx 的基本概念
  11. ZOJ 3551 Bloodsucker 题解
  12. Chrome浏览器如何导入证书(最新!)
  13. 解决小米手机用Android studio安装不了app的问题
  14. 鸟哥的Linux笔记-------磁盘与文件系统
  15. 我的世界python写游戏_用python写游戏之 Give it up
  16. ides样式及字体设置
  17. CTFShow-MISC入门篇详细wp(1-56)
  18. 用户名不能包含中文和特殊符号,只能输入英文加数字
  19. 电子商务组成与流程框架
  20. 健美计步器-开启超智能健康生活

热门文章

  1. python学习 之 pyqt5前后端分离试验(进度条)
  2. 利用Python的全国旅游景点数据分析案例(新手)
  3. py4j.protocol.Py4JJavaError错误
  4. 20200323ziji
  5. matlab从csv文件中读取时间转换异常
  6. java 入参校验_java开发参入参数校验
  7. Ben Fisch等联创爆出道德、法律丑闻,Espresso Systems风雨飘摇
  8. 明天就会有阳光...
  9. 上海海洋大学计算机专业是几本,上海海洋大学是几本 录取分数线一般在多少...
  10. 嗨聊:移动社交区域化发展的新思路