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 ...
随机推荐
- September 21st 2017 Week 38th Thursday
What fire does not destroy, it hardens. 烈火摧毁不了的东西,只会变得更坚固. The true gold can stand the test of fire, ...
- 什么是 .live()
很多开发者都知道jQuery的.live()方法,他们大部分知道这个函数做什么,但是并不知道是怎么实现的,所以用的并不那么舒适.而且他们却从未听过还有解除绑定的.live()事件的.die()方法.即 ...
- Java重写&重载
在学习完类和对象后,接下来就要进入面向对象的内容了,先从重写和重载开始吧.重写(Override)和重载(Overload)是两个不同的概念,也是两个容易混淆的概念,下面具体来说说这两者. 重写( ...
- Crond定时任务
crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond ...
- async/await actor promise 异步编程
Python协程:从yield/send到async/await http://blog.guoyb.com/2016/07/03/python-coroutine/ Async/Await替代Pro ...
- 【洛谷】【堆+结论】P4597 序列sequence
[题目背景:] 原题cf13c 数据加强版(就是说原来能用DP做现在不行了QwQ) [题目描述:] 给定一个序列,每次操作可以把某个数+1-1.要求把序列变成非降数列.而且要求修改后的数列只能出现修改 ...
- Odoo的@api.装饰器
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9281437.html Odoo自带的api装饰器主要有:model,multi,one,constrains, ...
- SVN 客户端使用
一.TortoiseSVN基本设置 1.1 客户端设置 1.1 语言设置 二.基本操作 2.1 浏览服务器 用户名跟密码,跟公司配置管理员人员获取,没有专门的 ...
- Python学习笔记系列——高阶函数(filter/sorted)
一.filter #filter()函数用于过滤序列.和map()类似,也接收一个函数和一个序列,把函数依次作用于每个元素,根据返回值是True还是False决定是否保留该元素. #filter()函 ...
- 一个牛公司的关于oracle数据的面试题
我也忘记是从哪里download的了,为了加深记忆,也为了完成我的博客,我决定写进博客里,如果有错误,欢迎大家指正,谢谢. 问题一. 解释一下sum的作用? 答:求符合条件的记录某数值字段的和. 问题 ...