git语言
安装完成后,需要进一步设置用户名和email。因为git是分布式版本控制工具,因此需要每台开发机自报家门。
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
其中--global表示将设置内容配置到全局,这样整个系统的用户都应用这个设置。后面我们还将介绍直接在配置文件中设置的方法。
git的各种命令
git init - 初始化版本库
git add - 将增加或修改内容放到暂存库
git commit - 提交暂存库的内容
git status - 查看状态
git diff - 比较两次版本的不同
git log - 查看版本日志
git reflog - 查看执行的命令日志
git reset - 回退历史版本
git rm - 从版本库中删除
git checkout - 切换分支
git branch - 创建或查看分支
git merge - 合并分支
git stash - 存储工作区
git tag - 创建或查看标签
git remote - 查看远程版本库的名称
git push - 推送本地库版本到远程库
git pull - 从远程库拉取到本地库
git clone - 从远程或本地克隆版本库到指定位置
将空目录或者有内容的目录加入到git版本控制器中,由git来跟踪并管理。
git init
命令执行完后,会在当前目录下生成一个.git的目录,该目录是隐藏的。这个目录不能轻易改动,里面保存着所有的git配置。
git add
将增加或修改的文件保存到暂存库中。
git add [文件]
将所有改动的文件都存放到暂存库。
git add -A
git commit
将暂存区的内容提交到版本库。每次提交都必须将提交的注释加上。
git commit -m "注释"
如果文件的修改或删除没有通过add或rm放入暂存区,也可以通过加入-a的参数直接提交。(增加必须通过add加入暂存区)
git commit -a -m "注释"
git status
查看文件有没有被修改的状态,无论文件是否放入暂存区,只要git监控到文件增加、修改、删除,都可以使用该命令来查看。
git status
git diff
比较未提交到暂存区的修改和上个版本的差别。
git diff [文件]
比较所有提交到暂存区的文件。
git diff
git log
查看操作日志,记录所有提交后的版本信息。可以根据日志信息回退到指定的版本。
git log
查看分支合并图
git log --graph
格式化显示效果
$ git log --graph --pretty=oneline --abbrev-commit
git reflog
查看所有执行的命令历史。
git reflog
git reset
回退历史版本。如果执行提交后又反悔了,可以通过该命令进行回退。
回退到当前版本,比如放弃当前未提交的修改。
git reset --hard head
如果要回退上一个版本,则改成
git reset --hard head~1
head~后面跟数字,表示回退到从当前版本往回数第几个版本。
也可以指定回退到某一个版本。首先通过git log,查看版本的id号,再根据id号来回退。id号可只写前四位。
git reset --hard [id]
git rm
删除文件有两种方式
直接从文件夹中删除,但是版本库中并没有被删,如果需要提交版本库就要用到git rm,再使用git commit提交。
使用git rm删除,文件会从版本库和工作区都删除,然后使用git commit提交。
用法:
git rm [文件]
git checkout
切换分支。
git checkout [分支名称]
创建并切换到该分支。
git checkout -b [分支名称]
git branch
查看分支。
git branch
创建分支。
git branch [分支名称]
删除分支。
git branch -d [分支名称]
如果删除的分支没有被合并,需要进行强制删除。
git branch -D [分支名称]
git merge
快速合并,直接改变合并分支的指针。如果合并的分支间有冲突,则需要手动解决冲突后再提交。git merge [合并的分支名称]
快速合并分支后,如果删除分支则日志记录中不会记录分支合并的操作。如果希望能记录分支合并的操作,则需要禁用快速合并。
git merge --no-ff
git stash
存储当前工作区。如果任务进行到一半,需要解决其他版本的问题,比如修复BUG。当前进行的操作可暂时保存下来,解决问题再恢复。
git stash
查看所有保存的工作现场。
git stash list
恢复保存的工作现场。git stash apply [工作现场名称]
恢复后删除工作现场
git stash drop [工作现场名称]
恢复最后保存的工作现场并同时删除
git stash pop
git tag
给最新的版本加上标签。
git tag [标签号]
给历史版本加上标签。版本id可以通过git log查看。
git tag [标签号] [版本id]
创建带有说明的标签。git tag -a [标签号] -m "标签说明" [版本id]
删除标签。
git tag -d [标签号]
远程仓库
如果不想搭建自己的git服务器,可以选择使用Github。这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这
目录下有没有idrsa和idrsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C [你的email]
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有idrsa和idrsa.pub两个文件,这两个就是SSH Key的秘钥对,idrsa是私钥,不能泄露出去,idrsa.pub是公钥,可以放心地告诉任何人。第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。添加远程库
现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库。
在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库。目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。git remote
通过git remote命令关联远程库。
git remote add origin [你的github地址]
查看远程库信息git remote -v
git push
将本地库提交到远程库git push origin [分支名称]
或
git push origin -u [分支名称]
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时可以简化命令。git
pull
如果向远程库推送失败,有可能远程库已有新版本导致冲突,那么需要使用git pull从远程库将新版本拉取到本地,手动解决后再推送。
git pull
如果pull也失败,有可能没有与远程库关联,下面是关联方法:git branch --set-upstream [分支名称] origin/[分支名称]
远程克隆git clone如果远程已有库,可以通过git clone将远程库的内容克隆到本地。
git clone [你的git地址]
从远程克隆下来的项目只能看到master分支,如果要抓取其他分支可以使用git checkout。git checkout -b dev1 origin/dev1
git语言的更多相关文章
- git新手配置(windows环境)
windows环境,初步了解git是个什么东西,使用过svn相关软件最佳,否则可以先补一下git的相关概念和用处,相关教程:https://www.liaoxuefeng.com/wiki/89604 ...
- TortoiseGit使用
TortoiseGit 前言: 其实作为一名学生,还未接触过企业级开发项目,基本都是一个人在本地敲代码,对于项目管理工具使用的并不多,最常用的命令也就是git clone了,hhh: 前些日子了解了一 ...
- Gogs - 基于 Go 语言的自助 Git 服务
Gogs(Go Git Service) 是一个基于 Go 语言的自助 Git 服务.Gogs 的目标是打造一个最简单.最快速和最轻松的方式搭建自助 Git 服务.使用 Go 语言开发使得 Gogs ...
- Git Github jekyll,gem Liquid模板语言 Markdown
Git Git教程 常用 Git 命令清单 Git远程操作详解 使用jekyll建立个人网站 Git is a free and open source distributed version ...
- Git安装配置和提交本地代码至Github,修改GitHub上显示的项目语言
1. 下载安装git Windows版Git下载地址: https://gitforwindows.org/ 安装没有特别要求可以一路Next即可,安装完成后可以看到: 2. 创建本地代码仓库 打开G ...
- 【转载】C/C++语言分析 & 每年学一种编程语言 & git历史
http://blog.csdn.net/turingbook/article/details/1778867 <程序员修炼之路>英文注释版 作者提出的经营之道是:——Invest Reg ...
- Go丨语言package github.com/Go-SQL-Driver/MySQL: exec: "git": executable file not found in %PATH%解决方法
Go语言在添加第三方MySQL驱动的时候报错: go: missing Git command. See https://golang.org/s/gogetcmd package github.co ...
- 使用pycharm手动搭建python语言django开发环境 - 使用git管理代码(二)
在pycharm中打开项目,使用File->Version Control->Git.选中git的安装路径并点击确认. 2)在Version Control界面中,配置或新建一个git的主 ...
- Go语言在线培训哪里好?Git操作和代码管理
在实际的项目开发过程中,多人进行项目开发,需要涉及到代码管理和协同管理.这就需要使用到代码协同管理工具.在过去,大家都熟悉使用的是SVN软件,而现在Git代码仓库管理软件的使用更为广泛.在本系列实战项 ...
随机推荐
- HTTP-304 NOT Modified
http://www.douban.com/note/161120791/ http://blog.sina.com.cn/s/blog_4c98b9600100jd4z.html http://ww ...
- Hibernate 注解多对一 要求在多那边产生一个外键而不会另外产生一个表
在使用hibernate注解的时候,我们映射一对多时,有时候莫名其妙的产生了两张表,其中一张表是A_B,这并不符合数据库中多的一方放置一个外键的原则,那么如何控制只产生一个表呢,请看下面的例子: 多的 ...
- CAD文件导入AD09
1.首先将CAD图纸倒出为DXF格式的文件. 2.在altium designer 的pcb编辑中点菜单文件--导入,在弹出的对话框中,选择导入文件的类型,选择 DWG,DXF类型.然后确定,再弹出的 ...
- VM Depot 镜像新增系列II – 学习管理系统,内容管理系统以及平台管理工具
发布于 2014-06-23 作者 刘 天栋 继上周企业管理软件和电子商务镜像的加盟之后,我们看到又有一批内容管理解决方案(CMS),学习管理解决方案(LMS)以及平台管理工具 (如 Open ...
- 1044 - Palindrome Partitioning(区间DP)
题目大意: 给你一个字符串,问这个字符串最少有多少个回文串. 区间DP直接搞 #include<cstdio> #include<cstring> #include&l ...
- Java Web项目的一般目录结构解析(eclipse)
以上为项目名为TestProject的目录结构截图,下面主要解析WebContent下各个目录的用途: css:存放项目所需要的css文件. images:存放项目所需要的图片文件. js:存放项目所 ...
- gcc编译器参数使用及解决
gcc -c CStringAndPointer.c -o CStringAndPointer.o 执行时出现问题: ./CStringAndPointer.o bash: ./CStringAndP ...
- iOS设备保持横排方向
//保持横排方向 -(NSUInteger)supportedInterfaceOrientations{ returnUIInterfaceOrientationMaskLandscapeL ...
- 高性能I/O设计模式Reactor和Proactor
系统I/O 可分为阻塞型, 非阻塞同步型,非阻塞异步型. (Linux对aio支持的不完整,所以linux上用Reactor比较多:Proactor需要系统API支持真正的“异步”) 阻塞型I/O意味 ...
- Dr.com5.2 for linux
最近安装了在ubuntu基础上改的elementaryos,很漂亮,学校提供的破linux客户端不能连上,网上常见的也是旧版本. 最后在百度Dr.com贴吧和这个帖子 http://forum.ubu ...