Git 我们一般用于保存代码、协同开发
yum install git
git remote 的相关配置详见 `初次操作`
各个环境下 大致流程 如下
git remote 设置的远程地址 请用 git 协议格式 如 git@github.com:HaleyLeoZhang/blog_v3.git
生成SSH公钥与私钥 -> 上传公钥到git代码托管服务器 -> 用私钥进行代码管理
如果你要上传代码到 Github 或者是 码云
得去对应平台的个人设置中心,设置SSH公钥
git remote 设置的远程地址 请用 https 协议格式 如 https://github.com/HaleyLeoZhang/blog_v3
Windows下保存 git 帐号的用户名与密码
git init # 在对应项目的根目录,初始化项目
git remote add 自定义名称 远程仓库名 # 设置远程代码仓库信息
git pull 自定义名称 分支名 # 初次拉取,需要确认仓库地址是正确的
git branch --set-upstream master origin/master # 本地的这个master分支 去关联 远程master分支
git init
git remote add origin https://github.com/HaleyLeoZhang/blog_v3 # windows环境,就是这样用 https 的协议
git pull origin master
git branch --set-upstream master origin/master
git add -A # 将git status中对应的所有的具体改动,添加到仓库门口,等待说明这些改动是干嘛的
git status # 查看该当前书写好的代码与上次存于git仓库中的文件,有哪些文件有过改动
git commit -m '这是你对此次改动的说明' # 用于表明最新的这次添加操作是干嘛的
# 注:如果提交的说明写错了,用`git commit --amend -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.
冲突标记<<<<<<< (7个<)与=======之间的内容是我的修改
=======与>>>>>>>之间的内容是别人的修改
<<<<<<< HEAD
Route::get('wechat/login','v1\CommonController@getWechatLogin'); // 微信登录
=======
Route::get('chat/qq','v1\CommonController@getChatQq'); // 加入qq群
>>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc
然后双方协商,冲突的位置,哪些代码的去留就行了。
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_v3
中途修改 .gitignore 时
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
指定非文本文件的对比合并方式
*.js linguist-language=php
*.css linguist-language=php
*.scss linguist-language=php
*.html linguist-language=php
这样我们会看到,我们上传到git后,项目会被归类到php类中去
如果你是在服务器上写日志调试问题在哪里,
调试完了,想恢复到修改前的样子
git checkout .
评论列表点此评论