mac(苹果电脑)及linux(centos,ubuntu) 安装git gitolite 及git常用命令示例
摘要:git安装看起来很简单,但网上的教程有好多坑。这里自己整理了一下Git安装下载Git有两种方法1、直接下载安装包,Git下载地址(推荐,简单快捷)一开始用的自动选择,结果dmg包下载到本地后,双击,安装出错?咋办,两个原因, 1.1、镜像错误(原因:安装包有问题,没下载完整啥的,解决:重新选择一个镜像点下载,我选择了台湾的镜像): 1.2、权限设置不允许安装,我的mac系...
摘要:git安装看起来很简单,但网上的教程有好多坑。这里自己整理了一下
Git安装
下载Git有两种方法
1、直接下载安装包,Git下载地址(推荐,简单快捷)
一开始用的自动选择,结果dmg包下载到本地后,双击,安装出错?
咋办,两个原因,
1.1、镜像错误(原因:安装包有问题,没下载完整啥的,解决:重新选择一个镜像点下载,我选择了台湾的镜像):
1.2、权限设置不允许安装,我的mac系统版本OSX10.12.2,解决:设置目录权限为可读写
2、命令行安装
yum install git #centos
apt-get install git #ubuntu
brew install git #mac step2
# 如果 mac没有安装homebrew 怎先 命令行安装homebrew:
$ homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装好git后,配置用户名和用户邮箱,以后每次与Git的交互都会使用该信息。git config --globaluser.name "your_name"
git config --globaluser.email "your_email@gmail.com"
配置信息可以更改,以后想要更改使用上面指令就可以。同时可以使用git config --list
指令查看Git的配置信息。
Git默认是大小写不敏感的,也就是说,将一个文件名某个字母做了大小写转换的修改Git是忽略这个改动的,导致在同步代码时候会出现错误,所以建议大小把Git设置成大小写敏感。git config core.ignorecase false
生成密钥
Git关联远端仓库时候需要提供公钥,本地保存私钥,每次与远端仓库交互时候,远端仓库会用公钥来验证交互者身份。使用以下指令生成密钥。ssh-keygen -t rsa -C "your_email@youremail.com"
生成密钥后,在本地的/Users/当前电脑用户/.ssh目录下会生成两个文件:
id_rsa、id_rsa.pub,
//id_rsa文件保存的是私钥,保存于本地,
//id_rsa.pub文件保存的是公钥,需要将里面内容上传到远端仓库。
获取公钥字符串具体操作如下图。
上图命令解释: 获取公钥
输入cd
指令,进入当前用户目录
输入ls -a
指令,查看当前用户目录下所有文件,包括隐藏文件
输入cd .ssh
指令,进入.ssh目录
输入ls
指令,查看.ssh目录下的文件
输入cat id_rsa.pub
指令,查看id_rsa.pub文件中内容
远端仓库添加密钥
以GitHub为例子,向远端仓库添加公钥,上面已经获取到了公钥,只需要将公钥添加到远端仓库就可以了。
添加公钥
在个人设置页面,左边选中SSH and GPG keys,在右边添加公钥,title是key的名称,可以随便取,可更改,key是上面我们获取到的公钥,填写完毕后点击add SSH key按钮,这样远端就添加到了密钥。
本地关联远端仓库
在本地文件夹下面执行git init指令,初始化文件夹,作为本地的一个仓库。
场景一:克隆远端到本地
执行git remote add origin
仓库的ssh链接
执行git pull
指令,将远端代码拉取到本地
执行完毕后,远端仓库代码已经同步到了本地。
场景二:本地上传到远端git push origin master
//反正我这一步出错了,咋办,用强制忽略错误来上传git push origin master -f
// -f 强制执行,忽略所有错误
然后再看一下远端库里,是不是新增加了一些本地刚上传的文件,OK到这里基本就差不多了。
将远端代码clone到当前目录
$ git clone git://github.com/schacon/grit.git
将远端代码clone到指定目录
$ git clone git://github.com/schacon/grit.git mydir
//mydir 是你的指定目录
gitadd<文件> #将有修改的文件添加到本地缓存中
git add . #添加所有修改
git commit -m"本次修改信息" #提交本次修改,一般是在git add之后操作
git reset . # 撤销
addgit rm--cached . # 撤销add
切换分支 devgit checkout dev
以当前分支为蓝本新建分支并切换到新分支 devgit checkout -b dev
当前分支master 合并其他分支 devgit merge dev
忽略未关联的错误,并合并分支
git merge master --allow-unrelated-histories
#如果提示错误,就先按照提示 把对应的文件及文件夹删掉,然后再执行
git push origin:dev #远端新建分支dev,其实就是将本地分支推送至远端
git push origin:dev #删除远端分支dev,其实就是推送了一个空的分支到远端覆盖了原来的远端分支
从远端拉取分支,并建立对应关系
git checkout -b origin
/// 或者
git branch —track origin/
本地已经存在的分支和远端分支建立对应关系
git branch —set-upstream origin/
添加远端库git remote add<远端库代称><远端库地址>
git clone<远端库地址><目录>
//不需要git init
回滚到某一个提交版本git reset --hard/soft
// 回滚到某一个版本
git reset --hard/softHEAD~
// 回滚num个提交
git revert -m number
// 撤销某一次merge
强制远端覆盖本地
提交日志查看方式
```gitlog-p
每一次提交具体差异
显示文件修改差异,没显示具体修改
```gitlog—graph
树形状提交记录,可查看分支合并信息
git pull —rebase
有冲突后,解决冲突,使用git add .
然后使用git rebase --continue
切换到某个分支,将其他分支的某次提交应用到该分支git checkoutgit cherry-pick
表示把到之间(左开右闭,不包含start-commit-id)的提交cherry-pick到当前分支;后者表示把到之间(闭区间,包含start-commit-id)的提交cherry-pick到当前分支。
git cherry-pick..git cherry-pick^.. tag
//新建tag
//轻量标签
```gittag-a-m"tag_msg"
// 附注标签
//给某次提交添加标签
删除tag
```gittag-d
查看tag
// 查看所有
```taggit show
// 查看某条tag
提交到远端git push origin
// 将某个tag提交到远端git push origin –tags
// 将所有tag提交到远端
branch相关指令git branch -d
// 删除某个分支git branch-D// 强制删除某个分支git branch -avv
// 查看本地分支与远端分支关系,并且显示分支最新一次提交信息git remote show origin
// 查看远端分支间关系
更多推荐
所有评论(0)