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 git@github.com: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 git@github.com: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%

更多命令介绍