1、使用git config命令进行配置(此配置为全局配置,这些是在提交commit时的签名):
$ git config --global user.name "填写github的用户名"
$ git config --global user.email "填写github的邮箱"
注意:git config 命令带 --global参数一经配置,在每次commit时都会自动调用,而且在你机器上的所有git仓库,都会使用到这个配置。改配置保存在 ~/.gitconfig 文件中。
可用 $git config -l 查看以上配置情况
2、克隆仓库
使用下面方式进行clone:
克隆完成后,当前目录下会生成 gitproject文件
PS:git clone 与 git pull 的区别
git clone 命令,某一目录下面没有repository(仓库)时,通过 $git clone git@github.com:whatever
/something
.git 方式将远程已存在的某一个仓库完整复制过来,在本地不必进行 $git init 初始化操作
git pull 命令,相当于执行了 git fetch
+ git merge
操作,是拉取远程分支更新到本地仓库,然后进行merge(合并)操作。何时会用到?当远程分支更新了内容,而本地仓库没有同步这些内容,则使用该命令,相当于获取新版本。 git pull = git fetch + git merge
3、初始化仓库命令(将目录切换到具体目录下再执行)
$ git init
作用
主要用来初始化一个空的git
本地仓库。执行完上面的命令,当前目录下会自动生成.git
隐藏文件夹,该隐藏文件夹就是git
版本库
4、git的基本流程如下:
1)创建或修改文件
2)使用git add命令添加新创建或修改的文件到本地的缓存区(Index)
3)使用git commit命令提交到本地代码库
4)(可选,有的时候并没有可以同步的远端代码库)使用git push命令将本地代码库同步到远端代码库
5、使用git status命令查看当前git仓库的状态:git diff 命令再加上 --cached 参数,看看缓存区中哪些文件被修改了
(要退出时使用q)。执行了$git add 添加文件到缓存区后,若想撤回这些文件,用下面命令
$git reset HEAD 或者 $git reset HEAD foo.text(文件)或者src/test/(目录)
6、当所有新建,修改的文件都被添加到了缓存区,就要使用git commit提交到本地仓库(-m添加本次修改的注释):
$ git commit -m "add 3 files"
用下面的命令将所有没有加到缓存区的修改也一起提交,但-a命令不会添加新建的文件。
$ git commit -a -m "add 3 files"
7、将本地仓库与远程仓库关联,使用如下命令(需要修改下面的远程仓库地址为自己的仓库地址):
git remote add origin https://github.com/something.git
这个时候如果本地的仓库连接到了远程Git服务器,可以使用下面的命令将本地仓库同步到远端服务器:
# 需要输入仓库对应的用户名和密码 $ git push origin master
$ git push -u origin +master 强行更新(提示:更新被拒绝,因为远程版本库包含您本地尚不存在的提交。。。)
8、Git仓库创建一个新的叫 experimental的分支:
$ git branch experimental
运行git branch命令可以查看当前的分支列表,以及目前的开发环境处在哪个分支上:
$ git branch experimental * master
输入git checkout 分支名可以切换到其他分支:
$ git checkout experimental Switched to branch 'experimental'
9、git merge命令来合并experimental到主线分支master:
# 切换到master分支 $ git checkout master # 将experimental分支合并到master $ git merge -m 'merge experimental branch' experimental
10、不再需要experimental时,可以使用下面的命令删除:
$ git branch -d experimental
git branch -d只能删除那些已经被当前分支的合并的分支. 如果你要强制删除某个分支的话就用git branch –D
11、如果你觉得你合并后的状态是一团乱麻,想把当前的修改都放弃,你可以用下面的命令回到合并之前的状态(撤销前一个合并):
$ git reset --hard HEAD^ # 查看file3的内容,已经恢复到合并前的master上的文件内容
12、查看日志,git log命令可以显示所有的提交(commit):
$ git log
格式化日志
你可以按你的要求来格式化日志输出。--pretty参数可以使用若干表现格式,如--oneline
$ git log --pretty=oneline
或者用short、medium,full,fuller,email 或raw,format参数定义格式。
$ git log --pretty=format:'%h : %s' --topo-order --graph
统计修改信息(在log命令后面添加某些参数可达到统计作用
--stat 显示被修改的那些文件
--dirstat 显示那些包含被修改文件的目录
--shortstat 显示项目中有多少文件被修改
--graph 显示各提交之间的关系(提交路线)
13,相关命令的含义
已修改,未暂存
git diff
还没有做git add .之前,我们如何检查有哪些修改,
已暂存,未提交
git diff这个命令只检查我们的工作区和暂存区之间的差异,如果我们想看到暂存区和本地仓库之间的差异,就需要加一个参数
$git diff --cached
diff 命令还能比较两次提交之间的差异
$git diff 77d231f(这是某次提交的散列值) HEAD
或者比较当前提交于上一次提交之间的差异,使用 ^!
$git diff 77d231f^!
已提交,未推送
git diff master origin/master
把修改从暂存区提交到本地仓库,再看一下差异。先执行git commit,然后再执行git diff --cached,没有差异,执行git diff master origin/master,可以看到差异:
.
14. .gitignore文件的作用,放在该文件夹下的文件,是告诉Git哪些文件不需要添加到版本管理中,可以在该文件中指定这些文件路径和目录,并且可以使用“*”和
"&"等通配符
15. $git stash 命令的作用
通俗的将,当我们正在进行某些事情的处理,比如修改bug,或者正在开发,突然来个任务说要紧急去干其它事情,比如修复线上的BUG,可是此时的工作需要保存
下来以便解决完其它事情后,再回来处理还能完整打开并继续,此时stash命令就起到这样的作用。
stash命令将工作区和暂存区的修改保存在一个被称为存储栈(stash stack)的缓存区中。与stash相关命令
$git stash
将本地的修改保存起来,并且将当前代码切换到HEAD
提交上
$git stash list 查看当前存储的修改列表
$git stash pop 恢复到存储代码之前的工作状态
- Git 一些日常使用积累
本来不想写这样的东西的,因为随处谷歌百度都有一大堆!但是,我却总是在百度谷歌,我在想,为什么我不自己写一篇存进来,顺便加深印象呢?既然这样,这篇随笔,就真的变成随笔好了,随时修改,随时添加. Git ...
- git指令总结及常见问题积累与解决方案
git指令总结及常见问题积累与解决方案 git初始化一个项目并且长传到服务器后端步骤: 1.本地文件操作 通过:git init初始化化一个项目 会出现一个隐藏文件 ,可以文件夹属性设置进行查看,此 ...
- git点滴的积累
git的基本学习的网址: http://www.yiibai.com/git/git_update_operation.html 0.git首次上传代码 http://www.cnblogs.com/ ...
- pro git 使用积累
http://www.zhihu.com/question/20070065 git相关问题的收集 Git 是 Linux 之父 Linus Trovalds,为管理 Linux 内核代码而建立的,被 ...
- git的使用与积累
之前对git可以说是一无所知,不过现在做工程要用到,于是就花点时间找了一些资料,本文也只是各种git学习资料的集合,权当是学习笔记吧 一:git的安装与配置 首先,git其实一般在linux环境下都是 ...
- git日常使用经验积累
1 git merge origin/develop 将远程分支合并到本地,一般先执行合并,解决冲突,然后再git commit合入新建的分支,推送到远程分支里面,最后码云上找pl pull requ ...
- Git使用(积累一些常用的命令)
1. 取消某一次合并 git merge --abort 可以参考的教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248 ...
- git 命令积累
git status # 查看仓库的状态 git add . # 监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的 ...
- Git命令行学习积累
1.远程分支拉取到本地 $ git checkout -b develop origin/develop //检出远程的develop分支到本地 2.本地分支推送到远程 $ git checkout ...
随机推荐
- iis里URL重写重定向,http做301重定向https
上一篇文章写了iis和apache共用80端口,IIS代理转发apache. 因为第一次配置,这中间还是碰到了很多问题.这里记录下来,希望以后能避免错误. 使用Application Request ...
- 红黑树及其实例JDK中的TreeMap
红黑树是一种自平衡二叉查找树(binary search tree,BST),红黑树是一种比较复杂的数据结构,红黑树查找.插入.删除元素的时间复杂度为O(log n),n是树中元素的数目.文章的要讲的 ...
- CGI编程学习
@CGI编程学习 目录(?)[+] 一.基本原理 CGI:通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口.通过CGI接口,Web服务器就能 ...
- 1.5 Community and Conferences(社区和讨论组)+ 私货
1.5 Community and Conferences(社区和讨论组)+ 私货 下面是一些和科学计算,数据处理相关的Python社群和讨论组,如果有什么问题可以进行提问: pydata: A Go ...
- laravel框架之blade模板引擎
## 1.基本用法 ##情形1 $name = laravel5 <div class="title"> {{$name}} {{$name}}</div> ...
- Hadoop学习之路(十二)分布式集群中HDFS系统的各种角色
NameNode 学习目标 理解 namenode 的工作机制尤其是元数据管理机制,以增强对 HDFS 工作原理的 理解,及培养 hadoop 集群运营中“性能调优”.“namenode”故障问题的分 ...
- 多线程之Thread类
Java并发编程:Thread类的使用 在前面2篇文章分别讲到了线程和进程的由来.以及如何在Java中怎么创建线程和进程.今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知 ...
- ZOJ 3992 One-Dimensional Maze(思维题)
L - One-Dimensional Maze Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & % ...
- vue指令:v-model绑定表单控件;v-model与v-bind结合使用
一.v-model绑定表单控件 v-model 双向数据绑定:一般用于表单元素,会忽略表单元素的value.checked.selected的初始值,且将Vue实例的数据作为数据来源. 1. 单行文本 ...
- React实战一
目录 1. 搭建环境 2. React知识点 1. 组件 1.1 定义一个组件 1.2 组合与拆分组件 1.3 组件传值 1.4 state 1.5 生命周期函数 1.6 无状态组件 1.7 List ...