您的位置:首页 > 其它

Git快速上手小结

2017-10-24 23:51 260 查看
Git 我们一般用于保存代码、协同开发




安装


Linux 环境

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 帐号的用户名与密码


初次操作

git init # 在对应项目的根目录,初始化项目

git remote add 自定义名称 远程仓库名 # 设置远程代码仓库信息

git branch --set-upstream master origin/master # 本地的这个master分支 去关联 远程master分支



示例

git init

git remote add origin https://github.com/HaleyLeoZhang/blog_v2 # windows环境,就是这样用 https 的协议

git branch --set-upstream master origin/master



提交流程

git add -A # 将git status中对应的所有的具体改动,添加到仓库门口,等待说明这些改动是干嘛的

git status # 查看该当前书写好的代码与上次存于git仓库中的文件,有哪些文件有过改动

git commit -m '这是你对此次改动的说明' # 用于表明最新的这次添加操作是干嘛的

git push <远程主机名> <本地分支名>



示例

git add -A

git status

git commit -m 'This is a commit'

git push origin master



合并分支

合并流程

注意:合并前,请一定先git add与git commit一下你的文件,以防pull下来的合并导致的代码丢失
git pull <远程主机名> <本地分支名> # 从远程获取最新版本并merge到本地



示例

git pull origin master



冲突解决

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

CONFLICT (content): Merge conflict in router.php

Automatic merge failed; fix conflicts and then commit the result.



router.php中的冲突代码,如下


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

=======与>>>>>>>之间的内容是别人的修改
<<<<<<< HEAD

Route::get('wechat/login','v1\CommonController@getWechatLogin'); // 微信登录

=======

Route::get('chat/qq','v1\CommonController@getChatQq');  // 加入qq群

>>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc


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

双方代码都想保留 -> router.php修改后

Route::get('wechat/login','v1\CommonController@getWechatLogin'); // 微信登录

Route::get('chat/qq','v1\CommonController@getChatQq');  // 加入qq群


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


版本回退

回退到前 n 个版本

git reset  --hard HEAD~数字



示例

git reset --hard HEAD~1 # 回退到上一个版本


回退到某个版本

git reset  --hard 版本号



示例

git reset --hard b28a2baef9f9ad73793900a5561ef15b1e147b1d



代码日志

git log --stat


概览代码仓库的历史

提交时间

提交标注

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

改动行数

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

Author: hlz <tiemaocsdn@qq.com>

Date:   Sat Sep 9 10:51:35 2017 +0800

:

Updated

:

application/api/Editor.php            |  6 +++---

application/api/Media.php             | 24 +++++++

application/view/Admin/user_info.html |  3 ++-

3 files changed, 17 insertions(+), 16 deletions(-)

:

commit 96cf3bc3a2268441fbeb09424fffea079b77502c

Author: hlz <tiemaocsdn@qq.com>

Date:   Mon Sep 4 21:22:04 2017 +0800

:

updated

:

README.md | 4 ++--

1 file changed, 2 insertions(+), 2 deletions(-)


查看具体某次的代码详情
git log -p 版本号或者最新的第几次   # 用法类似 版本回退



示例

git log -p b28a2baef9f9ad73793900a5561ef15b1e147b1d # 查看这次版本号 对应的具体修改



对比版本间代码差异

git diff 版本号1 版本号2



克隆代码

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

git clone 项目地址



示例

git clone https://github.com/HaleyLeoZhang/blog_v2[/code] 


处理细节

.gitignore的使用与应用场景

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

示例:把下面的以.js .css .scss .html文件结尾的文件当成是php文件

*.js linguist-language=php

*.css linguist-language=php

*.scss linguist-language=php

*.html linguist-language=php


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



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

这篇文章真的很不错,博主也很厉害,推荐大家去看看一看这个博主:http://www.hlzblog.top/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: