Ubuntu Git 安装、配置及常用命令

一 在Ubuntu安装Git

首先,你可以试着输入git,看看系统有没有安装Git: 

$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

确认没有安装 Git 后,使用 apt 进行安装:

sudo apt-get install git

创建git用户,用来运行Git服务:

sudo adduser git

创建证书登录: 
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

初始化Git仓库: 
先选定一个目录作为Git仓库 /home/git/demo.git,在/srv目录下输入命令: 

sudo git init --bare demo.git

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。

然后,把owner改为git:

sudo chown -R git:git demo.git

二 创建本地版本库

什么是版本库呢?版本库又名仓库,英文名 repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。 
所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

cd /home/git 
mkdir gitname
cd gitname

通过 git init 命令把这个目录变成 Git 可以管理的仓库:

$ git init
Initialized empty Git repository in /home/git/gitname/.git/

创建了一个空的仓库(empty Git repository),当前目录下多了一个隐藏的 .git的目录。

三 远程仓库

克隆库

当已经有远程库时,使用git clone克隆远程库到本地:  

git clone git@github.com:zhouhao4221/xiaolaiwo.git

克隆完成后,本地自动创建一个 xiaolaiwo 的文件夹。

创建远程库

本地是一个Git仓库,想要修改一个关联的远程仓库,并且让这两个仓库进行同步(若远程库不存在请先创建远程库):

git remote add origin git@github.com:zhouhao4221/xiaolaiwo.git

git@github.com 中git是远程服务器的Git用户名、github.com是远程服务器地址,服务器地址也可以是Ip。

zhouhao4221/xiaolaiwo.git 远程服务中Git目录的地址。

下一步,就可以把本地库的所有内容推送到远程库上:

git push -u origin master

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。 
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

以后使用git push origin master命令提交即可。

四 忽略特殊文件

在仓库根目录下创建名称为.gitignore的文件,写入不需要的文件夹名或文件,每个元素占一行:

.DS_Store
node_modules/
npm-debug.log
# 忽略使用WebStorm开发时,生成的缓存文件夹
.idea
# 忽略使用VSCode开发时,生成的缓存文件夹
.vscode

五 常用命令

远程仓库相关命令 

git clone git@github.com:zhouhao4221/xiaolaiwo.git 检出仓库 

git remote -v查看远程仓库 

git remote add [name] [url]添加远程仓库 

git remote rm [name]删除远程仓库 

git remote set-url --push [name] [newUrl]修改远程仓库 

git pull [remoteName] [localBranchName]拉取远程仓库 

git push [remoteName] [localBranchName]推送远程仓库 
  如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支: 

git push origin test:master提交本地test分支作为远程的master分支 

git push origin test:test提交本地test分支作为远程的test分支 

分支(branch)操作相关命令

git branch查看本地分支

git branch -r查看远程分支

git branch [name]创建本地分支,注意新分支创建后不会自动切换为当前分支 

git checkout [name]切换分支 

git checkout -b [name]创建新分支并立即切换到新分支 

git branch -d [name]删除分支 ,-d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项 

git merge [name]合并分支,将名称为[name]的分支与当前分支合并 

git push origin [name]创建远程分支(本地分支push到远程) 
git push origin :heads/[name] 或 git push origin :[name] 删除远程分支 

版本(tag)操作相关命令

git tag查看版本

git tag [name]创建版本

git tag -d [name]删除版本

git tag -r查看远程版本

git push origin [name]创建远程版本(本地版本push到远程)

git push origin :refs/tags/[name]删除远程版本

git pull origin --tags合并远程仓库的tag到本地

git push origin --tags上传本地tag到远程仓库

git tag -a [name] -m 'yourMessage'创建带注释的tag

发表评论