git入门

.git参考网址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

git入门


使用git类网站

1.注册账号
2.上传ssh公钥
如果没有创建:

```
已经创建:在主目录.ssh文件中,id_rsa是私钥,id_rsa.pub是公钥。
##使用github
在GitHub上,可以任意Fork开源仓库;
自己拥有Fork后的仓库的读写权限;
可以推送pull request给官方仓库来贡献代码。
##使用码云
中国版的github,速度比较快
码云的免费版本也提供私有库功能,只是有5人的成员上限。

-------------------
#自定义git
##配置基本信息

--global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。

gitconfigglobaluser.nameYourName g i t c o n f i g – g l o b a l u s e r . n a m e “ Y o u r N a m e ” git config –global user.email “email@example.com”

##配置文件名颜色

git config –global color.ui true

##忽略特殊文件

*.gitignore:        https://github.com/github/gitignore*
通过.gitignore忽略自动生成和敏感的配置文件

/mtk/ //过滤整个文件夹
*.zip // 过滤所有.zip文件
/mtk/do.c //过滤某个具体文件

!*.zip //加感叹号可以把文件忽略的同时添加到版本管理

##配置别名
很大程度上提高了效率

git config –global alias.st status//用 st代替status
git config –global alias.co checkout
git config –global alias.ci commit
git config –global alias.br branch
git config –global alias.unstage ‘reset HEAD’
git config –global alias.last ‘log -1’
git config –global alias.lg “log –color –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit”

配置文件在.git/config中,可以在里面直接修改

-------------------


#本地&远程库
##本地创建版本库

git init

##远程创建版本库
网站上新建一个库
##本地和远程关联

git remote add origin http://github.com/username/learngit.git //本地仓库下运行地址也可以是git@github.com:username/learngit.git https比较慢,每次推送需要口令

关联到文件夹

git remote -v//查看关联情况

*命名不同的远程库可以同时关联到两个不同的git网站*

##本地→远程

git push -u origin master//将本地库的所有内容推送到远程库,首次加u可以简化日后的命令

##远程→本地

git clone git@github.com:michaelliao/gitskills.git//ssh比https快

##不再关联

git remote rm origin//

-------------------
#删除操作

###删除文件

rm //删除本地文件
git rm
git commit//在版本库中删除文件
git checkout –//还原误删的文件


-------------------

## 创建版本库


git add //将文件放到暂存区
git commit//把暂存区的东西放到分支

git add . //所有改动放到暂存区

##时光穿梭机

git status //当前库的状态,有没有修改没提交

git diff //查看文件差异

###版本回退

git log//修改的历史记录
git log –pretty=oneline//简洁的历史记录

 退出git log :q

git reset –hard HEAD^//HEAD是当前版本,一个^退一个版本

git reset –hard

cat //查看文档

git reflog//操作记录,可以看到commit id

###工作区和暂存区
工作区——git add——暂存区(stage/index)——git commit——版本库

###管理修改

git diff HEAD – readme.txt//工作区和最新版本的区别


###撤销修改

git checkout – file//撤销修改,回到最近一次git add 或 git commit

git reset HEAD file//撤销掉暂存区里的修改




###从远程库克隆

git clone

##分支管理

git checkout -b dev//创建并切换到dev分支 branch checkout

git branch //查看当前分支

git merge dev//合并分支

git branch -d dev//删除分支

###解决冲突

git log –graph –pretty=oneline –abbrev-commit//查看分支合并情况

###分支管理策略

fast forward    --no-ff

git merge –no-ff -m “merge with no-ff” dev //禁用fast forward模式

--no-ff可以看出曾经做过合并
###Bug分支

git stash//保存工作现场
git stash list//查看工作现场
git stash apply;git stash drop
git stash pop

###feature分支

touch //新建文件

git branch -D feature-vulcan//删除没有合并的分支

###多人协作

git remote//查看远程库的信息,加-v更详细

####推送分支

git push origin master//将该分支上所有本地推送到远程库

git push origin dev//推送其他分支

master时刻推送,dev是开发分支,所有成员都在用,要同步,单人的可以推送不着急
####抓取分支

git pull
git branch –set-upstream dev origin/
git pull

##标签管理
tag 版本库快照  
对应某个commit 编号比较方便
###创建标签

git tag //打标签
git tag//查看标签
git tag v0.9 6224937//给以前版本打标签
git show //查看标签信息
git tag -a v0.1 -m “version 0.1 released” 3628164//带说明的标签
git tag -s -m “blablabla…”//用PGP标签签名,报错需要自己配

###操作标签

git push origin //推送本地标签
git push origin –tags//推送所有标签
git tag -d //删除本地标签
git push origin :refs/tags///删除一个远程标签

-------------------
#搭建git服务器
##安装git

sudo apt-get install git//搭建git服务器

##创建一个git用户,用来运行git服务

sudo adduser git//创建一个git用户,用来运行git服务

##创建证书登录
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。人多可以用Gitosis.
##初始化Git仓库

sudo git init –bare sample.git

sudo chown -R git:git sample.git

##禁用shell登录
编辑/etc/passwd文件

git:x:1001:1001:,,,:/home/git:/bin/bash

改为

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

##克隆远程仓库

git clone git@server:/srv/sample.git
“`

权限管理

Gitolite


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值