您的位置:首页 > 其它

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(每条修改记录在一行显示)
$gitre
set--hardHEAD^(返回上一版本)[/code]
$gitre
set--hardHEAD^^(返回上上个版本)[/code]
$gitre
set--hard3628164(返回对应版本号,版本号不用写全,写前几位就行)[/code]
$
git
reflog(关了窗口后再想查看修改记录输入的命令)[/code]

5远程仓库

(1)创建SSHKey在gitbash中输入$[code]ssh-keygen-trsa-
C
youremail@example.com(把邮件地址换成你自己的邮件地址)[/code]
然后一路回车,使用默认值即可。
C:\Users\Administrator此目录下有.ssh的文件夹了。
登录github右上角setting-
Accountsettings-SSHKeys-newsshkeys-title(随便填)-Key(粘贴
id_rsa.pub
文件的内容)-AddKey

6新建仓库并推送

(1)右上角Createanewrepo-Createanewrepo填入名字其他保持默认设置,点击“Createrepository”按钮
Gitbasah输入以下命令$[code]gitremoteaddorigingit@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]gittagv
0
.
9
6224937(给某个id的版本打标签)[/code]
(3)$[code]gittag(产看所有标签)
(4)$git
showv0.9
产看标签的详细内容

13
删除标签

如果没有添加到远程库中
(1)
$
gittag-dv
0
.
1删除标签[/code]
(2)$[code]gitpushoriginv1.
0推送某个标签到远程库[/code]
(3)[code]$gitpushorigin–tags
一次性推送全部尚未推送到远程的本地标签:[/code]
如果推动到远程库了
$[code]gittag-dv
0
.
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#!/usr/bin/envbash#MIT©SindreSorhus-sindresorhus.co#githooktorunacommandafter`gitpull`ifaspecifiedfilewaschanged#Run`chmod+xpost-merge`tomakeitexecutablethenputitinto`.git/hooks/`.changed_files="$(gitdiff-tree-r--name-only--no-commit-idORIG_HEADHEAD)"check_run(){echo"$changed_files"|grep--quiet"$1"&&eval"$2"}#Exampleusage#Inthisexampleit'susedtorun`npminstall`ifpackage.jsonchangedcheck_runpackage.json"npminstall"  

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: