git使用笔记
2016-03-04 22:34
295 查看
1.创建版本库
(1)$[code]mkdirlearngit(生成learngit文件夹)
$[code]cdlearngit(切到learngit)
$[code]pwd(显示当前目录)(2)$gitinit(把这个目录变成可以托管的仓库)
2.把文件放到版本库
几次add一次comitadd是放入暂存区commit才是真正保存$gitaddreademe.txt$gitaddlicsence.txt$gitcommit–m“”;3.删除文件
$[code]rmtest.txt
误删后恢复文件
$[code]gitcheckout--test.txt场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
gitcheckout--file。场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令
gitresetHEADfile,就回到了场景1,第二步按场景1操作。
4历史修改记录
$gitlog
$[code]gitlog--pretty=oneline(每条修改记录在一行显示)
$gitreset--hardHEAD^(返回上一版本)[/code]
$gitreset--hardHEAD^^(返回上上个版本)[/code]
$gitreset--hard3628164(返回对应版本号,版本号不用写全,写前几位就行)[/code]
$gitreflog(关了窗口后再想查看修改记录输入的命令)[/code]
5远程仓库
(1)创建SSHKey在gitbash中输入$[code]ssh-keygen-trsa-C
然后一路回车,使用默认值即可。
C:\Users\Administrator此目录下有.ssh的文件夹了。
登录github右上角setting-Accountsettings-SSHKeys-newsshkeys-title(随便填)-Key(粘贴
id_rsa.pub文件的内容)-AddKey
6新建仓库并推送
(1)右上角Createanewrepo-Createanewrepo填入名字其他保持默认设置,点击“Createrepository”按钮
Gitbasah输入以下命令$[code]gitremoteaddorigin把上面的git@github.com:michaelliao/learngit.git
michaelliao替换成你自己的GitHub账户名[/code]
(2)$gitpush-uoriginmaster
(3)输入github用户名密码回车就搞定了。此后,每次本地提交后,只要有必要,就可以使用命令
gitpushoriginmaster推送最新修改;[/code]
7先创建远程库,再克隆本地库。
(1)创建完远程库后在gitbash输入
$gitclonehttps://github.com/ytudt/gitskills.git(url地址+库名)
(2)$[code]cdgitskills
$[code]ls
README[code].md(查看仓库中的内容)
8
创建分支
(1)$
gitcheckout-bdev表示创建并切换,相当于以下两条命令[/code]
$[code]gitbranchdev
$[code]gitcheckoutdev(切换到dev)
(2)$
gitbranch查看所有分支*表示在当前分支下
(3)修改完成文件后在dev分支下提交
$[code]gitaddreadme.txt
$[code]gitcommit-m"branchtest"[/code]
(4)$[code]gitcheckoutmaster(切换回主分支)
(5)$
gitmergedev(把dev分支合并到当前分支,dev分支还存在)
(6)$
gitbranch-ddev(删除dev分支)
注意:两个分支都有修改的情况下不能合并。合并是会有冲突。
9在dev分支工作时突然遇到master有不过需要修改
(1)$gitstatus(把当前工作现场“储藏”起来)
(2)$[code]gitcheckoutmaster
(切换到master)
(3)$[code]gitcheckout-bissue-101(建立新分支)[/code]
(4)修改bug
(5)$[code]gitaddreadme.txt
$[code]gitcommit-m"fixbug101"(保存修改)[/code]
(6)$[code]gitcheckoutmaster(切换到master)
(7)$[code]gitmerge--no-ff-m"mergedbugfix101"
issue-101(合并分支)[/code]
(8)$[code]gitcheckoutdev(切换到dev)
(10)$[code]gitstashpop
(恢复原来工作状态并删除stash)
或者[code]gitstashapply(先恢复)
gitstashdrop(后删除stash)
10
删除还没合并到
master
的分支
如果新建了分支还没有合并到master不能通过$
gitbranch-dfeature-vulcan删除可以通过$
gitbranch-D
feature-vulcan
删除。
11往远程库推送分支
$[code]gitpushoriginmaster(dev)
12
创建标签
(1)$
gittagv1.0默认标签是打在最新提交的commit上的[/code]
(2)给以前的打标签
$[code]gitlog--pretty=oneline--abbrev-commit
$[code]gittagv0
.96224937(给某个id的版本打标签)[/code]
(3)$[code]gittag(产看所有标签)
(4)$gitshowv0.9
产看标签的详细内容
13
删除标签
如果没有添加到远程库中
(1)$
gittag-dv0
.1删除标签[/code]
(2)$[code]gitpushoriginv1.0推送某个标签到远程库[/code]
(3)[code]$gitpushorigin–tags一次性推送全部尚未推送到远程的本地标签:[/code]
如果推动到远程库了
$[code]gittag-dv0
.9先从本地删除[/code]
$[code]gitpushorigin:refs/tags/v0
.9然后从远程库删除[/code]
14githook
在执行git各种命令时会触发一些钩子函数,可以执行某些脚本在项目根目录下cd.git/hooks就可以看到各种钩子(只有把.sample后缀去掉才可以执行)比如在gitpull代码合并后触发post-mergehooks新建post-merge文件输入如下修改完后需要在命令台中执行`chmod+xpost-merge`功能是检查package.json如果变更了则执行npminstall相关文章推荐
- BZOJ1044/HAOI2008木棍分割
- 蓝桥杯 地宫取宝
- CocoaPods的安装(以下命令均在终端下操作)
- Android内存优化之 LruCache与DiskLruCache
- Leetcode 102 Binary Tree Level Order Traversal 二叉树+BFS
- 联想y460 +centos6.4 64位 开启无线热点Ap
- Java中的字节流和字符流
- 模板与泛型编程2
- Android中Intent传递对象的两种方法(Serializable,Parcelable)
- nyoj 456 邮票分你一半<背包>
- ViewPager 配合FragmentPagerAdapter
- 网页爬虫及其用到的算法和数据结构
- 餐厅点餐
- a和&a的区别
- [LeetCode]224. Basic Calculator
- BZOJ4011(DP)
- Exynos4412 Uboot 移植(二)—— Uboot 启动流程分析
- 圆的面积
- Linux技术——tcpdump命令详解
- mysql修改表、字段、库的字符集