记录一下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 中打标签也相当的简单,首先,切换到需要打标签的分支上。git branch #查看当前所有的分支。
# 切换到你要打标签的分支。
git checkout master # 使用下面的命令打一个新的标签
git tag v1.0 # 你也可以对特定的commit_id 进行打标签。
git tag v0.9 4321234 # 使用git tag进行查看标签
git tag # 小结:
# 命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
# git tag -a <tagname> -m "blablabla..."可以指定标签信息;
# git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
# 命令git tag可以查看所有标签。 # 命令git push origin <tagname>可以推送一个本地标签;
# 命令git push origin --tags可以推送全部未推送过的本地标签;
# 命令git tag -d <tagname>可以删除一个本地标签;
# 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
使用 github
可以使用下面的命令配置他的颜色:
git config --global color.ui true可以设置忽略某些文件:
这git 里面,初始化的时候,他会生成 .gitignore文件,里面包含的文件全部会被忽略,你也可以添加你自己想忽略的文件。如果你是在是想调价被忽略的文件,那么你可以使用
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的常用命令记录 1.与远程仓库建立连接,即关联一个远程库 git remote add origin git@server-name:path/repo-name.git; 2.查看当前分支 ...
- git log 常用命令及技巧
git log常用命令以及技巧 1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Pag ...
- Git是什么、Git的功能、为什么versioncontrol用Git、Git的常用命令、Git的优缺点
Git是什么 git是目前世界上最先进的分布式版本控制系统(没有之一). Git是用于 Linux内核开发的版本控制工具.与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版 ...
- Git 基础 —— 常用命令
Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 git init 创建 Git ...
- git的常用命令。。
git的常用命令.. git help <command> 显示command的help git show 显示某次提交的内容 git show $id git co -- <f ...
- GIT 版本控制常用命令学习汇总
GIT 版本控制常用命令汇总 git version 查看当前git版本信息 git help 获取全部命令帮助信息 git help <command> 获取指定命令帮助信息 git c ...
- Git基本常用命令
Git基本常用命令如下: mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目录的路径. git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件. git ...
- Git stash 常用命令
参考: Git: How to look at the stash Git学习笔记05--git stash Git stash 常用命令 1.git stash: 保存当前的工作进度: 2.git ...
- git之常用命令
git之常用命令 1.下载远程仓库最新代码 $ git pull --rebase origin master 2.上传代码 $ git push origin master 3.退出编辑 ESC + ...
随机推荐
- 环境变量NLS_LANG
NLS_LANG是一个环境变量,用于定义语言,地域以及字符集属性.对于非英语的字符集,NLS_LANG的设置就非常重要.NLS:‘National Language Support (NLS)’ 当我 ...
- spring mvc+ spring +mybatis
首先,修改web.xml,添加配置文件路由以及格式过滤 <?xml version="1.0" encoding="UTF-8"?> <web ...
- Linux下部署docker记录(1)-Volume使用
之前部署了Linux下部署docker记录(0)-基础环境安装,接下来看看Docker Volume的使用. Docker volume使用1)一个数据卷是一个特别指定的目录,该目录利用容器的UFS文 ...
- 奇虎360诉腾讯QQ垄断案之我见(3Q大战之我见)
这两款软件我都在用,要说时间最长感情最深的应该是腾讯QQ,1999年诞生的那年就在用QQ了! 不过感情归感情,个人看法归个人看法,不能用感情来判断. 正所谓外行看热闹,内行看门道.从事实上讲在使用这两 ...
- SQLite剖析之编程接口详解
前言 使用过程根据函数大致分为如下几个过程: sqlite3_open() sqlite3_prepare() sqlite3_step() sqlite3_column() sqlite3_fina ...
- 利用CSS计数函数counter()实现计数
要实现li列表计数比较简单,直接设置list-style-type即可,但是要实现非li列表计数该怎么办呢,counter()可以轻松实现 body{counter-reset:section 0 s ...
- php根据地址的经纬度查询周围的城市例子
目前的工作是需要对用户的一些数据进行分析,每个用户都有若干条记录,每条记录中有用户的一个位置,是用经度和纬度表示的.还有一个给定的数据库,存储的是一些已知地点以及他们的经纬度,内有43W多条的数据.现 ...
- 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把class ...
- Leetcode 40. Combination Sum II
Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in ...
- 【Codeforces710F】String Set Queries (强制在线)AC自动机 + 二进制分组
F. String Set Queries time limit per test:3 seconds memory limit per test:768 megabytes input:standa ...