git应用基础
初始化
mkdir temp1
cd temp1
git init
查看状态
# 推荐每次操作时候都先执行一下,了解仓库的情况
git status
把代码添加进git缓冲区
# 添加某个文件
git add some_file_you_edit.js
# 添加所有修改的文件
git add --all
# 提交到本地仓库
git commit -m '写写注释,本次提交的内容'
查看日志
git log
回退到某次提交
git reset {commit_id} --hard
添加远程仓库
# 一般默认会把远程仓库命名为origin
git remote add origin [email protected]:zxdong262/promise-mongo.git
获取代码
# 意为从名为origin的远程仓库获取分支名为master的代码到本地
# ,与本地代码合并
# 注意:请在执行commit之后在做这个操作
#
# -u 意为把origin master设为upsteam,默认远程仓库
# ,下次可以不写 origin master
# , 直接 git pull 即可
#
git pull origin master -u
提交到服务器
# 意为把当前最新提交的代码合并到名为origin的远程仓库的master分支
# 或者git push, 如果设置了upsteam
git push origin master
版本
# 创建一个版本
git tag 0.0.1
# 列出版本
git tag -l
# 推送到远程仓库
git push --tags
在服务器部署版本
# 获取代码
git clone [email protected]:zxdong262/promise-mongo.git
cd promise-mongo
# 切换到对应版本
git checkout 1.0.0
# 回退到某个版本
git checkout 0.4.2
deploy key获取
# 先看看有没有pubkey
vi ~/.ssh/id_rsa.pub
# 如果有内容,内容就是deploy key
# 如果是个空白文件说明还没有,输入 ":q" 退出
# 下面生成pubkey
ssh-keygen
# 然后回车回车回车回车回车回车回车,不要输入密码
# 然后打开~/.ssh/id_rsa.pub, 内容就是deploy key
vi ~/.ssh/id_rsa.pub
# 到仓库setting->deploy key项目下添加deploy key
# 这样这个服务器就获得了读取仓库内容权限
忽略文件
尽可能保持仓库的最小化,不要把不需要的,临时文件提交上去
编辑.gitignore实现
一个简单例子,更多用法请自行搜索
# gitignore
#忽略仓库根目录下的node_modules目录以及目录内所有文件
/node_modules/
#忽略仓库根目录下的特定文件config.js
/config.js
#忽略仓库根目录下的temp目录以及目录内所有文件
/temp/
#忽略所有后缀log的文件
*.log
#忽略所有后缀pid的文件
*.pid
#忽略所有.DS_Store
.DS_Store
#忽略所有.idea目录,包括根目录和子目录下的
.idea/
原则是不要把临时文件,无关文件提交到仓库,尽可能减小仓库大小
分支 branch
#新建分支
git branch legacy
#切换到分支
git checkout legacy
好用的 git-extra
https://github.com/tj/git-extras
# 贡献统计,按照提交次数
git summary
project : git-extras
repo age : 10 months ago
commits : 163
active : 60 days
files : 93
authors :
97 Tj Holowaychuk 59.5%
37 Jonhnny Weslley 22.7%
8 Kenneth Reitz 4.9%
5 Aggelos Orfanakos 3.1%
3 Jonathan "Duke" Leto 1.8%
2 Gert Van Gool 1.2%
2 Domenico Rotiroti 1.2%
2 Devin Withers 1.2%
2 TJ Holowaychuk 1.2%
1 Nick Campbell 0.6%
1 Alex McHale 0.6%
1 Jason Young 0.6%
1 Jens K. Mueller 0.6%
1 Guillermo Rauch 0.6%
# 贡献统计,按照行数
git summary --line
project : git-extras
lines : 8420
authors :
2905 Tj Holowaychuk 34.5%
1901 Jonhnny Weslley 22.6%
1474 nickl- 17.5%
653 Leila Muhtasib 7.8%
275 Tony 3.3%
267 Jesús Espino 3.2%
199 Philipp Klose 2.4%
180 Michael Komitee 2.1%
178 Tom Vincent 2.1%
119 TJ Holowaychuk 1.4%
114 Damian Krzeminski 1.4%
66 Kenneth Reitz 0.8%
22 Not Committed Yet 0.3%
17 David Baumgold 0.2%
12 Brian J Brennan 0.1%
6 Leandro López 0.1%
6 Jan Krueger 0.1%
6 Gunnlaugur Thor Briem 0.1%
3 Hogan Long 0.0%
3 Curtis McEnroe 0.0%
3 Alex McHale 0.0%
3 Aggelos Orfanakos 0.0%
2 Phally 0.0%
2 NANRI 0.0%
2 Moritz Grauel 0.0%
1 Jean Jordaan 0.0%
1 Daniel Schildt 0.0%