记录一下git 的常用命令
以后如果要写一个东西,最好先搭建一个本地仓库,用版本控制对其进行操作,可能一开始有一些麻烦,但是很有可能会受益无穷。
说到git,必然会和github联系起来。
不管是在ubuntu里面还是在Windows里面,现在都可以使用git进行代码版本控制。
在Ubuntu下,安装git相当简单,直接:
sudo apt-get install git
在Windows里面,进入下面这么链接,即可下载相对于的git软件,安装的话全部选择默认,软件位置可以选择其他盘。
https://git-scm.com/download/win绑定一个自己的邮箱以及名称。
安装完成以后,使用git -v 查看软件版本。
如果能显示版本信息,则表明安装成功。git config --global user.name "yourname" git config --global user.email "youremail" # 运行上面的命令,配置你的git名字以及邮箱。
git 的常用操作
在Linux下:mkdir entrepot cd entrepot# 运行 git init # 这里就建好了一个git空仓库,里面多了一个.git文件,在Linux下这是一个隐藏文件夹 # 下面讲一个如果将文件添加到版本库 # 在这个仓库放一个新建文件,或者在子文件夹内放一个子文件也可以,反正一定要在这个仓库文件夹内。git add filename # 这个在前两章讲用github hexo相关东西的时候说过。 # 执行上面的命令后,如果没有提示任何信息,说明就对了,在Linux里面,没有信息就是好消息。 # 第二步用命令commit 告诉git,把文件提交到仓库。git commit -m "xxx" # xxx 可以自己定义,你可以理解为一个升级标记。 # git add可以同时添加多个文件,然后再一起commit 提交到仓库。# 使用git status 可以查看当前git的状态。 git status # 使用git diff 可以查看文件在哪里被修改的,可以回忆起修改的地方,方便进行下一步工作。 git diff **.txt # 查看**.txt修改了哪些地方。# 最强大的大招出现了,可以使用git log查看所有修改的历史记录 git log # 这可以看到自打这个仓库创建以来所有的修改。 # 你也可以加上参数 --pretty=oneline 精简的查看所有的修改。# 也可以通过git reset 回退到上一个版本中。 git reset --hard HEAD~ # 也可以通过参数hard 后面跟版本号直接指定回到哪个版本。 git reset --hard id...(一串16进制id) # 如果你后悔回退版本了,又找不到最新的commit id 怎么办, # 在git中,总有后悔药可以吃 # 使用git reflog 用来记录你每一条命令。 git reflog # 找到最前面一个id 利用 git reset --hard id 回来。赞叹强大的git功能。# 当然,如果你想撤销对一个文件的修改, # 那么,你可以使用git checkout -- file 撤销对一个文件的修改。 git checkout -- filename # git checkout --filename 意思是把filename 文件在工作区的修改全部撤销,这里有两种情况: # 一种是filename自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态; # 一种是filename已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。# 如果你一时不小心,把不想修改的内容git add 到暂存区,还没有提交 # 那你可以用 git reset HEAD filename 把暂存区的内容撤销掉,从新放回工作区。 # git reset 也可以撤销暂存区的东西。 # 然后再用git checkout -- filename 进行撤销在工作区的修改。# 在git 中删除也是修改的操作。 # 当我们把一个新文件readme.txt 提交到Git后 git add readme.txt git commit -m "add read.txt"# 通常情况下你会直接将这个文件删除就完事了。 rm readme.txt # 但是你用git status命令他会立刻告诉你哪些文件被修改了。# 有两种可能,第一种是你确实想删除readme.txt,这种情况下,就可以使用git rm readme.txt, 并git commit 同步。 git rm readme.txt git commit "remove readme.txt"# 另外一种情况就是你一不小心删除了这个文件,那么你可以使用 git checkout 恢复。 git checkout -- readme.txt
连接远程仓库github,并做一些基本的操作
#在运行下面的命令生成ssh秘钥 ssh-keygen -t rsa -C “your githuab@gmail.com” #根据系统命令行的提示找到你的id_rsa和id_rsa.pub文件 #把id_rsa.pub 里面的内容全部复制进入你的github 右上角电话标志-->setting-->SSH and GPS keys ----> New SSH key 随意一个title 把刚才id_rsa.pub文件的内容复制到Key里面,保存。
# 添加远程库 # 在github 上创建一个learngit的新项目,全部选择默认,创建完了你会拥有一个新的空的远程仓库。 # 根据github上面的提示,在本地仓库learngit 仓库下运行命令: git remote add origin git@github.com:youremail/learngit.git # 现在你就可以把本地仓库的内容push 到远程github上面去。 # git push -u origin master # 把本地仓库的内容push到远程,用git push 命令, 实际上就是把当前分支master推送到远程。 # -u 是把本地分支master 和远程分支master 联系起来,下次推送就可以简化命令。 # 推送成功后,可以离开在github页面的远程仓库的内容和本地一致。# 以后推送就可以直接使用 # git push git@github.com:chenfulin5/test.git master git push origin master
# 我们还可以使用命令git clone 将远程仓库的东西克隆到本地仓库。 git clone git@github.com:chenfulin5@gmail/test.git # 这样我们就将我的github上面的test项目克隆到本地。
git 分支管理
分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写 完再一次提交,又存在丢失每天进度的巨大风险。
现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。# 分支的什么原理就不多提了,直接上操作。 # 创建分支: # git checkout -b dev # 这样就选择了一个新的分支dev# 上面的命令相当于下面两条命令: git branch dev git checkout dev # 然后用git branch 命令查看当前分支。 git branch # git branch 会列出所有的当前分支。 # 当前使用分支前面会添加一个*# 创建一个test.txt 上传上去。 git add test.txt git commit -m "branch dev test"# 然后回到master 分支。 git checkout master# 当然,当你已经完成的所有的工作以后,其他的组员能使用你的代码进行工作的时候,便可合并分支 git merge dev# 然后你就可以安心的删除dev分支 git branch -d dev# 然后用git branch 查看。 # 发现只有master分支了。# 总结: 查看分支:git branch 创建分支:git branch <name> 切换分支:git checkout <name> 创建+切换分支:git checkout -b <name> 合并某分支到当前分支:git merge <name> 删除分支:git branch -d <name>
# 合并也不是一件非常愉快的事情。 # 有时候会有文件冲突。 git checkout -b featurel # 创建并切换到新的featurel 分支。 # 如果你改了其中的文件,与别的分支冲突的时候 # 那么使用git merge featurel 进行合并featurel,他就会显示冲突。 # 使用git log 查看分支冲突。 git log --graph --pretty=oneline --abbrev-commit# 找到冲突的地方,解决冲突。
git 标签
在git 中打标签也相当的简单,首先,切换到需要打标签的分支上。
```sh
git branch #查看当前所有的分支。
# 切换到你要打标签的分支。
git checkout master# 使用下面的命令打一个新的标签
git tag v1.0# 你也可以对特定的commit_id 进行打标签。
git tag v0.9 4321234# 使用git tag进行查看标签
git tag# 小结:
# 命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;
# git tag -a -m "blablabla..."可以指定标签信息;
# git tag -s -m "blablabla..."可以用PGP签名标签;
# 命令git tag可以查看所有标签。# 命令git push origin 可以推送一个本地标签;
# 命令git push origin --tags可以推送全部未推送过的本地标签;
# 命令git tag -d 可以删除一个本地标签;
# 命令git push origin :refs/tags/可以删除一个远程标签。
```使用 github
可以使用下面的命令配置他的颜色:
git config --global color.ui true可以设置忽略某些文件:
这git 里面,初始化的时候,他会生成 .gitignore文件,里面包含的文件全部会被忽略,你也可以添加你自己想忽略的文件。如果你是在是想调价被忽略的文件,那么你可以使用
```sh
git add -f test.so# 再使用git check-ignore -v test.so 查看是哪条规则出了问题,就可以对其进行操作。
git check-ignore -v test.so
```
引用:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
记录一下git 的常用命令相关推荐
- Git 基础 —— 常用命令
Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 git init 创建 Git ...
- Mac 配置Git与常用命令
Mac 配置Git与常用命令总结 Mac 配置Git 1.Mac Git 安装 2.生成密钥 3.秘钥添加到仓库 Git常用命令 Mac 配置Git 1.Mac Git 安装 Mac一般自带Git工具 ...
- Git之(三)Git中常用命令——分支管理
三.Git中常用命令--分支管理 为什么要使用分支管理? 分支就是科幻电影里面的平行宇宙,也就是当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干 ...
- 【Git】Git是什么?简单说说Git的工作机制?Git的常用命令有那些?
目录 一.Git是什么? 二.简单说说Git的工作机制? 三.Git的常用命令有那些?
- Git基础(常用命令)介绍
版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统. 关于版本控制分为三种:本地版本控制系统,如rcs:集中化的版本控制系统,如CVS.SVN:分布式版本控制系统,如Git. Gi ...
- git 子命令 git tag 常用命令实操教程
前言 通常在发布软件的时候打一个tag,tag会记录版本的commit号,方便后期回溯. git tag 常用操作命令 新建tag 命令格式:git tag tagName 例:git tag v1. ...
- git 工具常用命令汇总
git是一个分布式版本控制工具,比svn要强大很多,适用于中大型的团队开发.svn比较适合中小型的团队开发.多个git版本一般用repo工具进行控制. 常用命令: 1. 仓库管理 git init ...
- Git 之三 常用命令:仓库创建、提交、分支等
常用命令 虽然 Git 同时提供了 GUI 界面 和 Bash,但是,GUI 界面的功能相对来说还是有点简陋的.要想熟练掌握 Git 的使用,还是需要了解 Git 一系列的命令! Git 命令 ...
- 【Git】常用命令详解(循序渐进,逐步分析)
目录 一.Git常用命令 1.1.设置用户签名 1.2.初始化本地库 1.3查看本地库状态 1.3.添加文件到暂存区 1.4.将暂存区文件添加文件到本地库 1.5.查看历史版本(提交历史记录) 1.6 ...
最新文章
- android ui自动化测试框架有哪些,自动化测试框架对比(UIAutomator、Appium、Robotium)...
- Aspose.Words提示The document appears to be corrupted and cannot be loaded.
- php encode 数组,PHP中json_encode转换数组时要注意的地方
- 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来
- 《活法》中一个故事--令托尔斯泰也折服的人性寓言
- Java反射机制是什么?
- 考研 | 研究生考试入门,送给刚刚进入寒假的大三的你
- VTK(二)vs2010第一个VTK程序。
- Flutter实战一Flutter聊天应用(十四)
- 随机出题在线考试系统php_在线考试系统怎么实现自制题库随机出题
- python — pip 下载速度慢解决方法(含Anaconda、spyder 下载包的方法)
- 嵌入式软件设计(freertos使用)
- 护眼台灯哪种光源好?光源最舒适的护眼台灯推荐
- 发票管理系统java_企业发票管理系统.doc
- 2013年1月CPU性能天梯图
- RC522 - NFC刷卡模块
- 2022年唯品会年货节活动力度咋样?
- 浩顺AC671指纹考勤机二次开发(demo)
- 条条干货!超实用的5个Excel小技巧!
- ecp应用程序中的服务器错误,ECP 运行状况设置疑难解答
热门文章
- 一些js/css动画 mark
- 一文读懂Java七大垃圾回收器
- matplotlib中文乱码问题_MacOS解决Matplotlib的中文乱码问题
- Windows 64位下安装Redis超详细教程
- elasticsearch工具类_Django + Elasticsearch——搜索精彩的TED演讲
- 机器学习经典算法笔记——KNN
- 分布式事务模型--Saga
- elasticsearch基本操作 --- 使用java操作elasticsearch
- git学习(四):理解git暂存区(stage)
- mac 下更新python