基本使用:

// 进入项目根目录,
git init // 接管你的项目文件夹, git status // 查看状态. 绿色已接管,红色未管理 git add . // 添加管理当前目录所有文件及子目录
git add .py // 管理单个文件 git commit -m '这是我创建的第一个版本'

后续动作修改完代码后,再次执行

git add .
git commit -m '这是第二个版本:修改了xxxx' git status
git log //查看版本记录 // 回滚到指定版本. 指定版本标识
git reset --hard 9bbb0ef17234d40c941fec0f0408d994b52a5060
// 回滚之后, git log 只能看到该版本及之前的版本. git reflog // 查看包括回滚的历史记录 // 如果开发新功能时进行到中途, 之前的版本中出现了问题, 需要修改.
git stash // 暂存新开发的部分. 然后再修改原有部分,
git add .
git commit -m '修改了原版中aaa.html文件' git stash pop // 取回暂存的内容,自动检测合并
// 取回的内容如果与二次修改的有冲突,则需要手动解决。 git stash list // 查看"暂存区"的所有记录
git stash clear // 清空"暂存区"
git stash pop // 取回暂存区第一个记录
git stash apply // 取回"暂存区"指定的记录 编号0
git stash drop // 删除"暂存区"指定记录

分支 branch
master永远保留正确代码

git branch // 查看分支
git branch dev1 // 创建新分支dev1 即拷贝当前所有代码到新分支
git checkout dev1 // 进入dev1分支 git checkout master // 回到主分支
git branch bug // 创建新分支bug, 然后修复bug完毕. git checkout master // 切回master
git merge bug // 把bug分支合并过来.
git branch -d bug // 再删除分支 git checkout dev1 // 回到dev1分支,继续开发新功能.

代码托管
公有: github  / 码云
自建: gitlab

// 下载代码
git clone https://github.com/frx9527/NodeJsDemo.git // 建立远程对应关系
git remote add origin https://github.com/frx9527/NodeJsDemo.git
git push -u origin master // 上传代码 master分支 git checkout dev1
git push origin dev1 // 上传dev1分支 // 换了电脑
git pull origin master // 拉取远程master
git branch dev1 // 一定要先创建本地分支,再拉取
git pull origin dev1 // 拉取dev1分支

案例: 公司开发的分支dev忘记提交. 回家开发其它部分

touch .txx
git add .
git commit -m "开发1.txt"
// 忘记push // 回到家中
git pull origin dev // 没有成功
touch .txt
git add .
git commit -m "开发2.txt"
git push origin dev // 提交 家中 代码 // 第二天回公司,此时仓库中有2.txt 公司电脑有1.txt
git pull origin dev // 拉取仓库代码, 处理合并.
touch .txt // 开发3.txt
git add .
git commit -m "开发3.txt"
git push origin dev // 入库 // 回家
git pull origin dev // 也可以分解成下面二步操作:
git fetch origin dev // 远程库下载到版本库
git merge origin/dev // 合并到工作区 会出现分岔 // 使用下面的方式则不会分岔
git fetch origin dev // 远程库下载到版本库
git rebase origin/dev // 合并到工作区但没有分岔, 保持提交记录整洁.

协同开发
  允许他人操作程序
    - 合作者 Collaborators
    - 创建组织

多个分支:
- user1:

git clone https://github.com/frx9527/NodeJsDemo.git
git branch dev
git checkout dev
git pull origin dev // 下载分支 git branch user1 // 创建新分支
git checkout user1
...
git checkout dev // 写完之后切回dev
git merge user1 // 合并user1的内容 git push origin dev // 提交分支

- user2:

git clone https://github.com/frx9527/NodeJsDemo.git
git branch dev
git checkout dev
git pull origin dev // 下载分支 git branch user2 // 创建新分支
git checkout user2
...
git checkout dev // 写完之后切回dev
git merge user2 // 合并user2的内容 // 以上步骤同user1 如果user1先提交了,后面的人将提交不成功. git pull origin dev // 先拉取代码,解决冲突.
git push origin dev // 最后提交分支 // 为了避免过多冲突,尽量1天合并一次.

代码检查 review
谁来 review ?
- 组长
- 带领者

如何 review ?
创建review分支:

github
  Fork 按钮, 即copy一份别人代码到自己仓库.
  // 然后操作自己库的那份代码. clone, 修改, commit , push等,
  // 完成修改之后, github 上 New pull request, 填写相关说明, Create pull request
  // 对方github上即会收到消息提醒, 进入 pull request 即可看到别人的提交
  // 对方可以查看/确认合并等.

避免反复输入密码
  HTTPS:
    https://username:passwd@github.com/frx9527/NodeJsDemo.git

SSH:
    git@github.com/frx9527/NodeJsDemo.git
    // 需要事先ssh-keygen , 并将id_rsa.pub 内容添加到github的settings中

.gitignore文件
    git中用来忽略检测某些文件, 可以手动添加内容. 指定文件或类型

github中可以搜索gitignore文件, 可以看到官方提供的ignore规则文件.
    github新建仓库时选项: Add.gitignore 可以选择对应的类型.

添加版本号显示:
// 通常在 push之后进行
git tag -a v1.0 -m "这是第一版" // 本地创建Tag
git push origin --tags // 推到github

// 其它命令
git show v1.0 // 查看
git tags -n // 查看本地Tag
git tag -l 'v1.4.2.*' // 查看本地Tag,模糊匹配
git tag -d v1.0 // 删除Tag
git push origin :refs/tags/v0.2 // 更新远程tag
git checkout v.10 // 切换tag
git fetch origin tag V1.2

git pull origin --tags
git clone -b v0.1 // 拉取指定版本

git push origin :dev // 删除远程dev分支

参考: https://www.cnblogs.com/wupeiqi/p/7295372.html

拉取时提示unmerge, 如果坚持以服务器为准,可以 reset本地,然后pull

git log       # 获取历史commit

git reset --hard      # 回到327366这个commit  本地的修改将丢失

git checkout .
git pull

本地的修改不要了,重新强制下载

git fetch --all
git reset --hard
git pull

删除上一次远程仓库的提交,修改上次提交的代码,做一次更完美的commit。

# 删除上一次远程仓库的提交,修改上次提交的代码,做一次更完美的commit。

git reset commitId  # (注:不要带 –-hard)到上个版本

git stash           # 暂存修改

git push --force    #  强制push,远程的最新的一次commit被删除

git stash pop      # 释放暂存的修改,开始修改代码

git add . -> git commit -m "massage" -> git push 你的分支

更多内容,可以参考:https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6

不会点git真不行啊.的更多相关文章

  1. 老铁,这年头不会点Git真不行!!!

    版本控制 说到版本控制,脑海里总会浮现大学毕业是写毕业论文的场景,你电脑上的毕业论文一定出现过这番景象! 毕业论文_初稿.doc 毕业论文_修改1.doc 毕业论文_修改2.doc 毕业论文_修改3. ...

  2. 老铁啊,我同你讲, 这年头不会点 Git 真不行!!!

    -------------------------------------知识是一点一点的积累的, 也是一点一点的吸收的,没有人一口就能吃成一个胖子. 版本控制 说到版本控制,脑海里总会浮现大学毕业是 ...

  3. 这年头不会点Git真不行!!!

    版本控制 说到版本控制,脑海里总会浮现大学毕业是写毕业论文的场景,你电脑上的毕业论文一定出现过这番景象! 1 2 3 4 5 6 7 8 9 10 11 毕业论文_初稿.doc 毕业论文_修改1.do ...

  4. 老铁,这年头不会点git真不行

    作者:武沛齐 出处:http://www.cnblogs.com/wupeiqi/ 版本控制 说到版本控制,脑海里总会浮现大学毕业是写毕业论文的场景,你电脑上的毕业论文一定出现过这番景象! 毕业论文_ ...

  5. Vs2017的git真S B

    1.先是无法克隆 2.修改用户还是无法克隆 3.修改用户凭据还是无法克隆 4.重装机器,将vs改为2017企业版,他妈的还是无法克隆 5.测试发现我这台机子无法克隆,其他的可以 6.提示永远是 Git ...

  6. Git 与 GitHub

    Git 这个年代,不会点Git真不行啦,少年别问问什么,在公司你就知道了~ Git是一个协同开发的工具,主要作用是进行版本控制,而且还能自动检测代码是否发生变化. 一. 安装 下载地址:https:/ ...

  7. Python总结篇——知识大全

    python基础 Python开发环境搭建 Python变量和基本数据类型 python基本数据类型之操作 python的语法规范及for和while python编码 python文件操作 pyth ...

  8. Python入门学习笔记4:他人的博客及他人的学习思路

    看其他人的学习笔记,可以保证自己不走弯路.并且一举两得,即学知识又学方法! 廖雪峰:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958 ...

  9. 常用的Git命令清单

    目录 名词解释 开卷必读 一. 新建代码库 二.配置 三. 忽略某个文件的改动 四. 增加/删除文件 五. 代码提交 六. 分支 七. 标签 八. 查看信息 九. 远程同步 十. 撤销 十一. Git ...

随机推荐

  1. .NET Core通过过滤器和中间件两种方式实现全局异常捕获和日志记录

    1.一共有五类过滤器IAsyncAuthorizationFilter  IAsyncResourceFilter   IAsyncActonFilter  IAsyncExceptionFilter ...

  2. js基础和技巧记录

    1.new Date(year, month, 0) 可以表示当前月份的最后一天 2.在一张绿色的图片上使用有奇效哦-webkit-filter: hue-rotate(-70deg) saturat ...

  3. linux 配置ftp服务

    需求:定时远程上传文件,windows->linux linux是一个云服务器,centos7 1:安装vsftpd yum install vsftpd 2:设置开机启动服务chkconfig ...

  4. hadoop多文件输出MultipleOutputFormat和MultipleOutputs

    1.MultipleOutputFormat可以将相似的记录输出到相同的数据集.在写每条记录之前,MultipleOutputFormat将调用generateFileNameForKeyValue方 ...

  5. 20165303魏煜第一周kali安装

    1.根据网址下载kali 这是kali的下载地址https://www.kali.org 找到download选择Kali Linux 64 bit VMware VM,点击后面蓝色部分开始下载选择6 ...

  6. sql server 将两列数据合并到一列 拼接

    create table a( s nvarchar null, ss nvarchar null, f decimal(18,1) null, ff decimal(18,1) null,)INSE ...

  7. CF923E Perpetual Subtraction

    生成函数好题! 搬一手铃悬的题解(侵删) 现在只需要考虑怎么求出g和逆变换即可,其实也就是对函数F(x)求F(x+1)和F(x-1). 直接二项式定理展开发现是个卷积的形式,大力NTT即可. #inc ...

  8. linux基础命令连接命令ln

    ln  -s  /etc/issue   /tmp/issue.soft 创建文件/etc/issue 的软连接/tmp/issue.soft 不带-s 生成硬链接文件. 软连接类似于windows的 ...

  9. Layui追加合计

    parseData: function(res) { //将原始数据解析成table组件所规定的数据 admin.restest(res); var list = new Array(); var t ...

  10. SpringBoot入门最详细教程

    monkey01 关注 2017.08.08 13:36* 字数 1479 阅读 34248评论 0喜欢 15 网上有很多springboot的入门教程,自己也因为项目要使用springboot,所以 ...