Git快速上手小结

Git 我们一般用于保存代码、协同开发

安装

Linux 环境
 
 
  1. yum install git
Windows 环境

点击下载

配置

git remote 的相关配置详见 `初次操作`
各个环境下 大致流程 如下

Linux

git remote 设置的远程地址 请用 git 协议格式 如 git@github.com:HaleyLeoZhang/blog_v2.git

生成SSH公钥与私钥 -> 上传公钥到git代码托管服务器 -> 用私钥进行代码管理

如果你要上传代码到 Github 或者是 码云
得去对应平台的个人设置中心,设置SSH公钥

Windows

git remote 设置的远程地址 请用 https 协议格式 如 https://github.com/HaleyLeoZhang/blog_v2
Windows下保存 git 帐号的用户名与密码

初次操作

 
 
  1. git init # 在对应项目的根目录,初始化项目
  2. git remote add 自定义名称 远程仓库名 # 设置远程代码仓库信息
  3. git branch --set-upstream master origin/master # 本地的这个master分支 去关联 远程master分支
示例
 
 
  1. git init
  2. git remote add origin https://github.com/HaleyLeoZhang/blog_v2 # windows环境,就是这样用 https 的协议
  3. git branch --set-upstream master origin/master

提交流程

 
 
  1. git add -A # 将git status中对应的所有的具体改动,添加到仓库门口,等待说明这些改动是干嘛的
  2. git status # 查看该当前书写好的代码与上次存于git仓库中的文件,有哪些文件有过改动
  3. git commit -m '这是你对此次改动的说明' # 用于表明最新的这次添加操作是干嘛的
  4. git push <远程主机名> <本地分支名>
示例
 
 
  1. git add -A
  2. git status
  3. git commit -m 'This is a commit'
  4. git push origin master

合并分支

合并流程

注意:合并前,请一定先git add与git commit一下你的文件,以防pull下来的合并导致的代码丢失

 
 
  1. git pull <远程主机名> <本地分支名> # 从远程获取最新版本并merge到本地
示例
 
 
  1. git pull origin master

冲突解决

合并后,命令行显示的信息类似提示。表明对应文件产生了冲突

 
 
  1. Auto-merging router.php
  2. CONFLICT (content): Merge conflict in router.php
  3. Automatic merge failed; fix conflicts and then commit the result.
router.php中的冲突代码,如下

冲突标记<<<<<<< (7个<)与=======之间的内容是我的修改
=======与>>>>>>>之间的内容是别人的修改

 
 
  1. <<<<<<< HEAD
  2. Route::get('wechat/login','v1\CommonController@getWechatLogin'); // 微信登录
  3. =======
  4. Route::get('chat/qq','v1\CommonController@getChatQq'); // 加入qq群
  5. >>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc

然后双方协商,冲突的位置,哪些代码的去留就行了。

双方代码都想保留 -> router.php修改后
 
 
  1. Route::get('wechat/login','v1\CommonController@getWechatLogin'); // 微信登录
  2. Route::get('chat/qq','v1\CommonController@getChatQq'); // 加入qq群

修改完后,记得重新提交一下代码哟

版本回退

回退到前 n 个版本

 
 
  1. git reset --hard HEAD~数字
示例
 
 
  1. git reset --hard HEAD~1 # 回退到上一个版本

回退到某个版本

 
 
  1. git reset --hard 版本号
示例
 
 
  1. git reset --hard b28a2baef9f9ad73793900a5561ef15b1e147b1d

代码日志

 
 
  1. git log --stat

概览代码仓库的历史

提交时间

提交标注

版本号 --> 可用于版本回退

改动行数

下方是 云天河Blog 的部分日志详情

 
 
  1. commit b28a2baef9f9ad73793900a5561ef15b1e147b1d
  2. Author: hlz <tiemaocsdn@qq.com>
  3. Date: Sat Sep 9 10:51:35 2017 +0800
  4. :
  5. Updated
  6. :
  7. application/api/Editor.php | 6 +++---
  8. application/api/Media.php | 24 +++++++
  9. application/view/Admin/user_info.html | 3 ++-
  10. 3 files changed, 17 insertions(+), 16 deletions(-)
  11. :
  12. commit 96cf3bc3a2268441fbeb09424fffea079b77502c
  13. Author: hlz <tiemaocsdn@qq.com>
  14. Date: Mon Sep 4 21:22:04 2017 +0800
  15. :
  16. updated
  17. :
  18. README.md | 4 ++--
  19. 1 file changed, 2 insertions(+), 2 deletions(-)

查看具体某次的代码详情

 
 
  1. git log -p 版本号或者最新的第几次 # 用法类似 版本回退
示例
 
 
  1. git log -p b28a2baef9f9ad73793900a5561ef15b1e147b1d # 查看这次版本号 对应的具体修改
对比版本间代码差异
 
 
  1. git diff 版本号1 版本号2

克隆代码

将代码托管处的项目,拷贝到当前目录下

 
 
  1. git clone 项目地址
示例
 
 
  1. git clone https://github.com/HaleyLeoZhang/blog_v2

处理细节

.gitignore的使用与应用场景

.gitattributes 指定非文本文件的对比合并方式

示例:把下面的以.js .css .scss .html文件结尾的文件当成是php文件
 
 
  1. *.js linguist-language=php
  2. *.css linguist-language=php
  3. *.scss linguist-language=php
  4. *.html linguist-language=php

这样我们会看到,我们上传到git后,项目会被归类到php类中去

转载至:http://www.hlzblog.top/Article?id=41

这篇文章真的很不错,博主也很厉害,推荐大家去看看一看这个博主:http://www.hlzblog.top/

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值