一 在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