git 的一般使用
git安装
git初始化一个仓库
- 命令:
git init;- 想在哪个目录创建.git目录,就是哪个目录打开工具然后写命令.
- 一般是在项目的根目录执行这个命令.
- 配置用户名 :
git config user.name "testName" - 配置邮箱 :
git config user.email "test@sina.com" - 查看配置信息:
git config --list
把代码提交到仓库中
- 1.先把代码添加到暂存区(就相当于放到仓库门口)
- 命令:
git add 文件路径 - 示例:
git add ./reademe.md - 可以使用
git add .这个命令,批量把当前目录下所有修改过的文件添加到暂存区。
- 命令:
- 2.把暂存区的文件提交仓库里
- 命令:
git commit -m "注释" - 示例:
git commit -m "我们添加了一个新的功能" - -m 表示指定一个字符串,作为提交的说明(相当于注释);
- 命令:
- 合并add 与commit 命令
git commit -a -m "这是使用合并添加与提交的操作";- 这里-a参数表明把所有修改后的文件一起添加到暂存区.(只是对修改后的文件有效,对于新添加的文件没有作用)
查看工作区状态
- 命令:
git status
添加忽略文件
- 在项目中有一些文件是不需要提交的,我们需要把它忽略掉
- 需要在.git文件夹所在目录新建一个名为git dig的文件
然后在这个文件中写上需要被忽略的文件的路径。
示例: /css/a.css
: /css/*.css
: /a.html
比对文件差异
- 命令:
git diff- 用来比较工作区内容与最近一次提交的内容的区别
- 如果暂存区没有文件,就会将工作与代码与最近一次提交对比
- 命令:
git diff --cached比较暂存区的文件和仓库中文件的区别 - 对比之前某两次提交的文件的差异
- 命令:
git diff [版本号1] [版本号2] [想比较的文件路径]
- 命令:
查看日志
- 命令:
git log,可以查看每一次提交的日志 - 命令:
git log --oneline表示使用简洁的形式输出提交日志
版本回退
- 命令:
git reset --hard Head~1- 这是将代码回退到上上一次提交时的状态
- 命令:
git reset --hard Head~2- 回退到上上上次
- 命令:
git reset --hard Head~0- 回退到上次提交时的状态,~0可以省略
- 命令:
git reset --hard 版本号- 通过每次提交时生成的版本号来回退版本
- 通过
git reflog命令可以查看之前所有版本切换的操作记录,可以通过这个命令得到的版本号回退到指定的版本。
创建分支
- 命令:
git branch [分支名]- 创建一个新分支
- 命令:
git branch- 查看当前所有的分支
切换分支
- 命令:
git checkout [分支名]- 切换分支后可以在切换后的分支中进行正常的操作
合并分支
- 命令:
git merge [分支名]- git会将指定的分支合并到当前分支.
删除分支
- 命令:
git branch -d [分支名]- 删除指定分支,-d参数表示要执行删除操作
git提交中的冲突
- 如果git不能自动合并分支,就会有冲突,我们需要手动解决冲突,然后再次提交
把代码push到服务器时需要先pull一下
- 在pull之后如果远程的代码与本地的代码有冲突,git会先自动合并冲突,如果不能自动合并,就必需我们手动去处理冲突。
从服务器上pull代码到本地
- 如果本地没有.git目录,需要先初始化一下。
- 命令:
git pull [远程服务器地址] [远程的分支]
上传代码到git服务器(push)
- 命令:
git push [远程服务器地址] [远程服务器的分支]- 示例:
git push https://github.com/test002.git master
- 示例:
- 上传时可以使用一些简化的命令
- 将远程服务器地址写成变量的形式
git remote add [变量名] [远程服务器地址]- 示例:
git remote add origin https://github.com/test002.git - 这样之后就可以直接使用origin来代替git push 后面写的地址了
git push origin master
- 将远程服务器地址写成变量的形式
- 还可以尽一步简化
- 在push时加上-u参数,就会默认建立本地当前分支与远程指定分支的关联,下一次push时就不需要输入分支名了
git push origin;
- 在push时加上-u参数,就会默认建立本地当前分支与远程指定分支的关联,下一次push时就不需要输入分支名了
死板的git命令使用方式,只在新手阶段推荐使用。
1每次想要提交代码,先执行“git pull”。如果失败,走到步骤2。如果成功,直接到步骤132调用"git stash"保存自己的本次修改(如果有新增文件,需要先"git add *",再执行“git stash”)3调用git pull,系统会自动合并代码,如果有冲突,也会提示conflict(仔细看这句话执行后的返回)4如果不只是dist里面的文件有冲突,则用编辑器打开,解决冲突(这个步骤没有把握可以求助其他人,或者冲突相关人)5如果只有dist里面的文件有冲突,重新通过gulp来生成即可。6git stash list7git pull8git stash apply stash@{0}9git status10git add .11git commit -m “xxx”12git push13再用“git add *”来添加所有改动代码,然后“git commit -m '这里是注释'”提交,并“git push”推送到线上
Mac 安装插件失败
xxxx.app已损坏,打不开.你应该将它移到废纸篓
解决方法就是临时改变Mac系统安全设置:打开 系统偏好设置 -> 安全性与隐私,修改为任何来源
如果系统版本是macOS Sierra 10.12的话会看不到这个选项,解决办法是:打开终端,执行sudo spctl --master-disable即可。
git 的一般使用的更多相关文章
- Git 子模块 - submodule
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...
- Git 在团队中的最佳实践--如何正确使用Git Flow
我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...
- Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...
- Git Bash的一些命令和配置
查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...
- 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net
1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...
- 史上最详细git教程
题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...
- [版本控制之道] Git 常用的命令总结(欢迎收藏备用)
坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...
- 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解
工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...
- git 命令
切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm ...
- git亲测命令
一.Git新建本地分支与远程分支关联问题 git checkout -b branch_name origin/branch_name 或者 git branch --set-upstream bra ...
随机推荐
- 使用jQuery的$.ajax()向MVC控制器Post数据
一整天不是在看书,就是做练习.今天还是把最难实现的怎样使用jQuery的$.ajax()向MVC控制器Post数据分享. 创建一个添加数据的存储过程: 在MVC应用程序下的Entities目录下,修改 ...
- 【手记】解决Resharper 2018.x起本机license server不能用的问题
ReSharper升级到2018版后,一直用的好好的本机license server(下称LS)不能用了,报The license server address is incorrect....在网上 ...
- [日常] Go语言圣经-竞争条件习题
package main import( "fmt" "sync" ) var balance int func Deposit(amount int) { b ...
- Java基础——JSP(一)
一.JSP的由来 在很多动态网页中,绝大多部分内容是不变的,只有局部内容需要动态产生和改变.例如, 一个新闻的浏览次数,只有这个次数是动态改变的,而Servlet程序返回客户端的代码全是java程序动 ...
- FZU1759(SummerTrainingDay04-B 欧拉降幂公式)
Problem 1759 Super A^B mod C Accept: 1056 Submit: 3444Time Limit: 1000 mSec Memory Limit : 327 ...
- BZOJ5305: [HAOI2018]苹果树
传送门 果然只有我这种菜鸡才会用这种菜鸡做法QwQ 对于一类要求期望的题目,有一个无脑的做法: 设概率为 \(f\),期望为 \(g\) 每次合并两个二元组 \(<f_1,g_1>,< ...
- chrome-Firefox-IE浏览器兼容总结
作为一名WEB前端程序员,相信每个人对浏览器的兼容都"情有独钟",下面就一些常用的浏览器的兼容列举一二. 一.块级元素(block)一般不转化为inline-block,其实是因为 ...
- Python Python-MySQLdb中的DictCursor使用方法简介
Python-MySQLdb中的DictCursor使用方法简介 by:授客 QQ:1033553122 DictCursor的这个功能是继承于CursorDictRowsMixIn,这个Mi ...
- 排错-tcpreplay回放错误:send() [218] Message too long (errno = 90)
排错-tcpreplay回放错误:send() [218] Message too long (errno = 90) by:授客 QQ:1033553122 问题描述: tcpreplay回放.pc ...
- android踩坑记录之view.setVisiblity()
问题 在某次做悬浮侧边栏的时候,遇到了一个问题:我用windowManager创建的悬浮侧边栏.点击中心view展开菜单,再次点击则隐藏菜单,如此简单的一个需求,却遇到了奇怪的问题,我没有对view的 ...