基本使用:

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

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

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

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

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

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

  1. // 下载代码
  2. git clone https://github.com/frx9527/NodeJsDemo.git
  3.  
  4. // 建立远程对应关系
  5. git remote add origin https://github.com/frx9527/NodeJsDemo.git
  6. git push -u origin master // 上传代码 master分支
  7.  
  8. git checkout dev1
  9. git push origin dev1 // 上传dev1分支
  10.  
  11. // 换了电脑
  12. git pull origin master // 拉取远程master
  13. git branch dev1 // 一定要先创建本地分支,再拉取
  14. git pull origin dev1 // 拉取dev1分支

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

  1. touch .txx
  2. git add .
  3. git commit -m "开发1.txt"
  4. // 忘记push
  5.  
  6. // 回到家中
  7. git pull origin dev // 没有成功
  8. touch .txt
  9. git add .
  10. git commit -m "开发2.txt"
  11. git push origin dev // 提交 家中 代码
  12.  
  13. // 第二天回公司,此时仓库中有2.txt 公司电脑有1.txt
  14. git pull origin dev // 拉取仓库代码, 处理合并.
  15. touch .txt // 开发3.txt
  16. git add .
  17. git commit -m "开发3.txt"
  18. git push origin dev // 入库
  19.  
  20. // 回家
  21. git pull origin dev // 也可以分解成下面二步操作:
  22. git fetch origin dev // 远程库下载到版本库
  23. git merge origin/dev // 合并到工作区 会出现分岔
  24.  
  25. // 使用下面的方式则不会分岔
  26. git fetch origin dev // 远程库下载到版本库
  27. git rebase origin/dev // 合并到工作区但没有分岔, 保持提交记录整洁.

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

多个分支:
- user1:

  1. git clone https://github.com/frx9527/NodeJsDemo.git
  2. git branch dev
  3. git checkout dev
  4. git pull origin dev // 下载分支
  5.  
  6. git branch user1 // 创建新分支
  7. git checkout user1
  8. ...
  9. git checkout dev // 写完之后切回dev
  10. git merge user1 // 合并user1的内容
  11.  
  12. git push origin dev // 提交分支

- user2:

  1. git clone https://github.com/frx9527/NodeJsDemo.git
  2. git branch dev
  3. git checkout dev
  4. git pull origin dev // 下载分支
  5.  
  6. git branch user2 // 创建新分支
  7. git checkout user2
  8. ...
  9. git checkout dev // 写完之后切回dev
  10. git merge user2 // 合并user2的内容
  11.  
  12. // 以上步骤同user1 如果user1先提交了,后面的人将提交不成功.
  13.  
  14. git pull origin dev // 先拉取代码,解决冲突.
  15. git push origin dev // 最后提交分支
  16.  
  17. // 为了避免过多冲突,尽量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

  1. git log # 获取历史commit
  2.  
  3. git reset --hard # 回到327366这个commit 本地的修改将丢失
  4.  
  5. git checkout .
  6. git pull

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

  1. git fetch --all
  2. git reset --hard
  3. git pull

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

  1. # 删除上一次远程仓库的提交,修改上次提交的代码,做一次更完美的commit。
  2.  
  3. git reset commitId # (注:不要带 –-hard)到上个版本
  4.  
  5. git stash # 暂存修改
  6.  
  7. git push --force # 强制push,远程的最新的一次commit被删除
  8.  
  9. git stash pop # 释放暂存的修改,开始修改代码
  10.  
  11. 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. 软件安装(ubuntu) --Linux基础编程

    Ubuntu:一个以桌面应用为主的开源GNU/Linux操作系统 1.在线安装(Ubuntu Example) [安装]:sudo apt-get install 安装包的名字,或者:sudo apt ...

  2. 动态嵌套form,使用Stimulus Js库(前后端不分离)

    我的git代码:https://github.com/chentianwei411/nested_form-Stimulus- Stimulus:     https://www.cnblogs.co ...

  3. 浅谈Pool对象

    Pool对象的技术指标: 避免频繁创建经常使用的稀有资源,提高工作效率. 控制阀值,很多情况下一些关键资源都有一个最佳并发数,超过这个拐点性能有可能急剧下降,也有可能继续增大并发数性能不能提升. 安全 ...

  4. iframe之间的postMessage传参

    1.传参 function IframeClose() { var obj = {method: "iframeClose"}; window.parent.postMessage ...

  5. Monkey工具

    Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey. Monkeyrunner.benchmark.其它test too ...

  6. Eclipse安装TestNG

    1.在Eclipse中点击Help菜单,选择Install New Software选项,在弹出页面中输入安装地址即可安装. http://beust.com/eclipse 2. 3. 4. 等待T ...

  7. restore not found的错误(问题2)

    最近在写gan,那么就牵扯到在一个session中加载两个图,restore的时候会有问题.如这篇文章写的(http://blog.csdn.net/u014659656/article/detail ...

  8. 【转】IIS - 自动申请、部署Let's Encrypt的免费SSL证书

    IIS - 自动申请.部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议) 2017-12-19发布:hangge阅读:161   一.HTTPS 协议介绍 1,什么是 HTTP ...

  9. Java 开发笔记

    共同学习,以下内容,随时更新. 前端 1.前端页面'是单引号的转义符,"是双引号.  问题(前端JS进行参数传递时,使用的是单引号扩住变量,但是变量形式为 2019-27  ...

  10. hdu2132

    题目:We once did a lot of recursional problem . I think some of them is easy for you and some if hard ...