一、git 创建仓库
创建远端仓库: git init – bare // 创建远端裸仓库;
远端仓库别名: origin
本地仓库: git clone …
demo
创建远程仓库
1.创建git账号和git用户组
$ sudo adduser git #添加git用户 $ sudo passwd git #添加git的密码 $ sudo groupadd git #添加git用户组 $ sudo usermod -G git git #添加git用户到git用户组
2.创建git仓库
// 创建仓库目录 $ cd /srv # srv目录下存放git的仓库 $ mkdir nginx-docs.git # 创建nginx-docs.git目录 $ cd nginx-docs.git // 初始化裸仓库 $ git init --bare # bare选项指示该仓库为裸仓库 // 修改仓库权限 $ sudo chown -R git:git /srv/nginx-docs.git # 修改权限为git用户
3.禁止git用户登录shell,这样git通过sh服务登录会被拒绝(可选)
4. 创建本地仓库
比如在我的windows电脑创建本地仓库文件夹 然后打开git bash shell,输入:
git clone git@47.106.79.26:/srv/nginx-docs.git
git clone user_name@remot_ipaddr:git仓库路径
二、本地仓库常用命令
git status //查看文件的状态 git add file_name //标记文件 git rm -f git status git log
在workspce 中创建新的文件是未被追踪的(untracked files)。
1. git add 用法
git add
通过git add 的方式把path目录下的所有文件添加到git的暂存区,当然这些文件不包含已经被删除的文件。
作用范围 workspac 和Index 之间。
实例
$ git add . # 将所有修改添加到暂存区 $ git add *.cpp **# 将以.cpp结尾的文件的所有修改添加到暂存区 $ git add hello* # 将所有以Hello开头的文件的修改添加到暂存区,例如: helloWorld.txt,hello.h,helloGit.md ... $ git add hello?.* # 将以hello开头后面只有一位的文件提交到暂存区 例如:hello1.txt,helloA.cpp 如果是helloGit.txt和hello.cxx是不会被添加的。**
2. 暂存区剔除文件
可以使用git rm -f 或者 git rm –cached 把文件从暂存区里移除,这个移除并不代码把文件从磁盘上删除了,只是说不被git管理了而已。
git rm -f file_name git rm -cached file_name
3. 代码提交
暂存区代码提交本地仓库
git commit 用法:
示例:
git commit -a -m “initial commit”, #把暂存区和当前已被跟踪的文件的所有的修改提交到仓库里,-m参数指定了此次提交的message内容 git commit Makefile Logger.cpp –m “修改编译错误,添加了对log4cpp库的依赖“ # 提交Makefile和Logger.cpp的修改
4.查看提交记录
查看提交日志
git log git log --stat
提交详解
git commit
参数:
-a 添加的-a参数会把当前暂存区里所有的修改(包括删除操作)都提交,但是那些尚未添加到暂存区的内容是不会提交的
messge 格式:
message的格式: <type>(<scope>): <subject> <BLANK LINE> <body> <BLANK LINE> <footer>
Type指:
feat: 新特性
fix: 修改问题
refactor: 代码重构
docs: 文档修改
style: 代码格式修改, 注意不是 css 修改
test: 测试用例修改
chore: 其他修改, 比如构建流程, 依赖管理.
scope: commit 影响的范围,即影响的模块或者组件,比如: route, component, utils, build…
subject: commit 的概述, 建议符合 50/72 formatting
body: commit 具体修改内容, 可以分为多行, 建议符合 50/72 formatting
footer: 一些备注, 通常是 BREAKING CHANGE 或修复的 bug 的链接,或者feature等等其余的信息.
git commit --amend
这也是我们经常用的命令,他会把此次提交追加到上一次的commit内容里。
三、 推送到远程分支
git push
git push命令用于将本地分支的更新,推送到远程主机。
格式
git push <远程主机名> <本地分支名>:<远程分支名>
1. git push origin master
git push origin master //命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。
如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略。
git push origin // 命令表示,将当前分支推送到origin主机的对应分支。
如果当前分支只有一个追踪分支,那么主机名都可以省略。
git push
2. git push origin :master
git push origin :master # 等同于 git push origin --delete master
命令表示删除origin主机的master分支。
总结
此片文章主要是讲解常用的git 命令 及其案例