第一次向nodeclub提交修改
今天第一次向nodeclub提交了两个修改,两个修改都是涉及部分浏览器的兼容性的. Manager很快合并了我的修改,好开森。晚上又重新回炉了一下git的日常操作,将git部分操作整理了一下写于此博. 为开源而开心~ ~

git 初学指南
版本回退
历史查看
git logorgit log --pretty=oneline:列出所有的提交记录
commit 333123123erer123sd123123213123213123
commit后面的为提交的ID退回相应版本
退回版本有两种方法
第一种:
git reset --hard HEAD^: 上一个版本
git reset --hard HEAD^^: 上上个版本
git reset --hard HEAD~66: 上66个版本第二种
git reset --hard commitID退回相应版本的ID
commitID可以不全,git会自动补全回到退回前的版本
后悔退到这个版本了怎么办,这时
git log只能查看此版本之前的信息
还好还有git reflog可以查看历史操作
本地仓库管理
本地添加修改并提交
本地仓库分3个区域
工作区 项目工程目录
暂存区 版本库的stage
分支 master和其他分支当我们对工作区的项目进行修改后可以使用
git status查看修改文件信息
将其放到暂存区stage使用git add somefile.cxs
然后提交到本地分支git commit -m "some message"
( 如果在工作去做了改动却没有add而是直接commit,会出现提示信息要求你add,但你也可以在提交时使用git commit -am "some message"加个a参数 )
This time 修改已经提交到本地分支了本地暂存区管理
a. 添加
git add命令可以向暂存区添加文件 如果在一个add之后又修改了文件,那就必须再add一次
( git 管理的是修改,add的时候放入暂存区的是当前文件的修改并不是文件本身 )b. 查看
git diff HEAD -- somefile.cxs命令可以查看当前工作区文件和版本库中的差异c. 撤销
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README.md
## Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.md
#
当我们向本地仓库提交过修改,向暂存区添加过修改或者在工作区修改过文件后用git status查看状态时都会有相应如上的提示。 上面的提示告诉我们3点- 本地分支中有两个commit,待提交当远程仓库中,使用
git push提交。 - 版本库的暂存区中有一个修改,待提交到本地仓库,使用
git reset HEAD fileName从暂存区中删除修改 - 工作区中有一个文件被修改,用
git add fileName提交到暂存区,用git checkout -- fileName将工作区中的文件恢复到上一次提交的状态。上一次提交的状态分两种。第一种:如果已经使用了add提交到暂存区,那就将恢复到最后一次提交到暂存区的状态。第二种如果暂存区为空那就会恢复到最后一次commit时的状态。
- 本地分支中有两个commit,待提交当远程仓库中,使用
远程仓库
添加远程仓库
使用
git remote add <originName> <gitRepo>添加远程仓库地址
使用git push -u <originName> master将本地的最新修改提交到远程仓库克隆远程仓库到本地
使用
git clone <gitRepo>将远程仓库克隆到本地
( gitRepo的地址分两种一种使用ssh另一种使用https )
git 协作和开发
基本的分支操作
创建分支
git branch dev创建一个dev分支
git checkout dev切换到dev分支
两步并一步git checkout -b dev分支切换
git branch查看当前有哪些分支
找到分支然后git checkout <branchName>进行切换
( 有一点要注意的是当你在分支或主支上有修改没提交时是不允许进行分支切换的 )
如果不允许切换有两种解决方法- 第一种解决方案:乖乖地将暂存区的修改删掉,把工作区修改的文件恢复到修改前的水平,这里涉及的两个命令已经讲过了,
git reset HEAD fileName和git checkout -- fileName - 第二种解决方案:使用
git stash命令将现在的工作存起来,相当于保护现场.
下次回到分支时使用git stash list查看存起来的工作,使用git stash pop将工作恢复,也可以使用git stash apply <stashName like stash@{0}>回复某一个工作
- 第一种解决方案:乖乖地将暂存区的修改删掉,把工作区修改的文件恢复到修改前的水平,这里涉及的两个命令已经讲过了,
合并分支
在dev和其他分支上的操作和在master上操作是一样的,操作完后使用
git checkout master切换到master主分支上然后合并分支,合并分支有两种方式- 第一种方式:使用
git merge <branchName>如果使用这种方式合并在删除分支时会丢失分支信息 - 第二种方式:( 推荐使用 )
git merge --no-ff -m "some message" <branchName>
两种方式的区别如下图
方式一:
方式二:

- 第一种方式:使用
合并时的冲突解决
当我们合并分支是如果代码有冲突会出现这样的提示
Auto-merging somefile.cxs
CONFLICT (content): Merge conflict in somefile.cxs
Automatic merge failed; fix conflicts and then commit the result
这表明somefile.cxs文件里有代码冲突.冲突的地方标识如下.
<<<<<<< HEAD
Creating in Master.
=======
Creating in dev.
>>>>>>> dev
将代码修改后再git add somefile.cxs
然后git commit -m "fixed somefile.cxs conflict"提交查看项目分支情况和删除分支
git log --graph --pretty=oneline --abbrev-commit命令可以以图形的方式展现项目的分支情况.
git branch -d <branchName>可以将分支删除.有时分支还没有合并到master上那就需要git branch -D <branchName>命令将分支删除多人协作模式
多人协作步骤如下
使用
git push origin <branchName>推送自己的修改,如果出错说明远程分支的代码和你有冲突.如果代码有冲突那就使用
git pull origin抓取远程仓库合并,如果想保险一点可以先git fetch origin master:tmp然后git diff master tmp查看一下远程仓库和自己的代码有什么差异,然后git merge tmp解决代码冲突后提交到本地仓库,然后push到远程仓库如果你开发的是远程仓库的某个分支那你就需要在本地建立一个对应的分支,命令如下
git checkout -b dev origin/dev
( 克隆下来的时候你只能看到master分支,其他分支是看不到的 )
然后使用git branch --set-upstream <branchName> origin/<branchName>将本地分支与远程仓库分支进行关联.然后进行上面提到的两步操作

第一次向nodeclub提交修改的更多相关文章
- Git 提交修改内容和查看被修改的内容
我们将仓库里的readme.txt文件修改一下,改成如下内容: Git is a distributed version control systemGit is free software. 运行g ...
- SVN提交修改时出现:Checksum mismatch
在使用SVN commit提交修改时,提示Checksum mismatch 问题,提示版本不一致,不能提交,类似于下图. 图片来源于网络,如有侵权,请告知删除. 搜索stackoverflow.co ...
- git一键提交修改文件
git一键提交修改文件 首先安装git, 有git bash: 新建一个gitcmt文件,放置于与你的项目同级的目录里: 使用:打开git bash, 方法1. git pull\git status ...
- SQL批量提交修改业务
把你需要批量提交修改的东西在内存中修改完毕 然后执行以下代码 SqlConnection conn = new SqlConnection(ConnectionString);SqlDataAdapt ...
- Git 提交修改
今天发现前几天的某一个提交因为忽略文件的问题而导致有几个文件没有提交,需要修改一下某个提交,研究一下可以用rebase命令来完成,执行过程模拟如下: 1. 环境搭建,版本库如下: 文件目录如下: 假设 ...
- GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮 ...
- 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...
- 实习小白笔记一(鼠标悬停、获取多选、提交修改、layer页面、单元格文字长度、json、分页、左连接)
①easyui 当鼠标悬停显示单元格信息: $(this).datagrid('doCellTip',{'max-width':'600px','delay':300}); ②jquery 获取che ...
- Github如何提交修改的代码以及更新到最新版本
最近有人问我,Github上如何把修改fork到的代码提交到原版本上去,以及如何更新到最新的版本.只针对初学者,大神的话勿喷. 首先说第一个问题. 进入到你修改的某个repository里面(以本人的 ...
随机推荐
- javascript中基本类型和引用类型的区别分析
大多数人系统学习过的程序设计语言,在这些语言的学习过程中最早学到的几个要点之一就是值类型和引用类型的区别.下面我们来看一下在 JavaScript 中基本数据类型(Primitive Types)和引 ...
- hihocoder-1347 小h的树上的朋友(lca+线段树)
题目链接: 小h的树上的朋友 时间限制:18000ms 单点时限:2000ms 内存限制:512MB 描述 小h拥有n位朋友.每位朋友拥有一个数值Vi代表他与小h的亲密度.亲密度有可能发生变化. 岁月 ...
- JSON --- 一种轻量级的数据交换格式
目录 1. 语法 2. 解析与序列化 JSON.stringify( jsData[, filter, indent] ) JSON.parse( jsonData[, reduction]) JSO ...
- label标签的可访问性
与表单元素关联的方法(IE6下label标签包裹控件的方法是不顶用的): 1 使用for和id关联控件 <p><label for="test">标签< ...
- Java中的Cloneable接口与深拷贝、浅拷贝
Cloneable接口是一个标记接口,也就是没有任何内容,定义如下: 这里分析一下这个接口的用法,clone方法是在Object种定义的,而且是protected型的,只有实现了这个接口,才可以在该类 ...
- curl测试dns解析时间及tcp连接时间
1.用Linux下的curl命令测量网络请求(分号是分隔符,可以是其他符号): curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer ...
- UVa 1336 Fixing the Great Wall (区间DP)
题意:给定 n 个结点,表示要修复的点,然后机器人每秒以 v 的速度移动,初始位置在 x,然后修复结点时不花费时间,但是如果有的结点暂时没修复, 那么每秒它的费用都会增加 d,修复要花费 c,坐标是 ...
- 洛谷 - P1225 - 黑白棋游戏 - bfs
神奇bug,没有记录pre就show了,找了1个小时. #include <bits/stdc++.h> using namespace std; #define ll long long ...
- PJzhang:漏洞渗透测试框架“天使之剑(AngelSword)”
猫宁!!! 参考链接: www.phpinfo.cc/?post=42 https://www.freebuf.com/sectool/149883.html 同事介绍了一款渗透测试框架AngelSw ...
- 莫队初探(不带修/例题极少)By cellur925
因为今天考到莫队裸题了嘤嘤嘤...而我这样的蒟蒻肯定不会这样的高端算法啊QAQ.于是暴力水了40分qwq. 正如上文所说,我实在太菜了,于是学习莫队也只是学习了最简单的不带修普通莫队,如果我能苟到省选 ...