git及Linux操作
下载地址: https://git-scm.com/download/win14,Dec
git与svn区别
- svn 集中式 git分布式代码管理 svn需要中央服务器
- git上传下载要快些
- svn每个文件夹都有个.svn文件 git在init项目有个.git文件
git命令
- git config –global -l 查看全局配置
- git config –global user.name ‘wo’ 用户名
- git init 初始化 有了第一次根提交才会有第一个分支
- git add .或文件名 工作区提交暂存区
- git commit -m ‘注释’ 暂存区到历史区
- git commit -a -m ‘注释’ 只针对提交过一次的文件 快捷提交
- git config –global user.email ‘w@163.com’ 邮箱
- git rm –cached 文件名 在暂存区移除
- git rm –cached . -r 全部在暂存区移除
- git log 输出提交日志 git reset –hard 版本号 日志显示当前版本以前的(包括当前版本)
- git diff 默认比较工作区和暂存区 git diff master (自己起分支) 工作区和历史区比较 git diff –cached 比较暂存区和历史区
- git checkout . 或者 git checkout 文件名 从暂存区将工作区内容覆盖掉
- history >2.txt 将历史命令写入2.txt如果没有新建
- git reset HEAD 文件名 文件暂存区回滚上个状态 撤销这步提交暂存区
- git
- :内容一屏放不全 可以上下键翻动 q退出
- git reset –hard 版本号 强制版本回滚使其三个区保持一致
- git reset –hard HEAD^向上级回滚一次
- git reflog 记录所有commit提交指针变化 与git reset –hard配合可任意回滚版本
- git branch 查看分支 加参数创建分支
- git branch -a 显示本地、服务器所有分支
- git branch -vv 显示本地分支和服务器分支的映射关系
- git checkout 分支名 切换分支
- git branch -D 分支名 删除分支 删除分支不能在要删分支上
- git checkout -b 分支名 创建并切换分支名 对于操作同意空间 当提交commit以后分支有差别了
- git stash 暂存分支 当分支有更改 不能直接切换分支 可以提交 分支或者暂存分支 暂存没有修改是暂存过渡区暂时缓存修改后内容 切换分支后 git stash pop 取回刚刚暂存的内容
- git merge 分支名 合并分支 遇有冲突的需要手动修改 再add commit
- git log –graph 显示图谱 git log –graph –oneline 显示一行
- touch .gitignore远程提交 忽略文件
- touch .gitkeep 可远程提交文件夹(默认空文件夹无法提交)
- git remote add origin 远程仓库地址 origin是自己起的别名默认origin
- git remote rm origin 删除地址
- git push -u origin master -u 记录提交origin master 下次提交只写 git push即可
- git pull origin master 线上线下代码不一致 先拉取 会出现代码合并vi编辑界面 如果有冲突还是先手动改文件
- gh-pages 在项目中创建提交线上仓库 用于展示项目静态页
- git checkout -b gh-pages 创建分支
- touch index.html
- git add . git commit -m ‘提交静态页’
- git push origin gh-pages
- fork的项目 克隆 git clone 项目地址 项目名字(自己起别名) new pull request 只有fork关系才能发送request请求
- 可以在项目setting设置贡献者权限 提交用户名或邮箱开通权限邀请 这样那个被邀请人就可以往所在库提交代码
- git push origin –delete {{branch_name}} 删除远程分支
- git rebase 分支名 变基
- mkdir 文件夹名 新建文件夹 cd 文件夹 打开文件夹
- ls 查看非隐藏文件列表
- ls -a查看所有文件
- cd ../ 返回上一级目录
- touch .ignore 创建忽略文件
- Wc 文件名 统计文件的字节数(汉字两字节)
- less 文件名 查看文件在vi编辑器
- pwd print working directory 打印当前工作目录
- q退出
- rm 文件 删除文件
- Rm -rf 文件目录(强制删除,包括文件夹)
- rmdir 空目录 删除空文件夹
- mv 文件名 目录名 把文件移动到某目录 如mv 1.txt ../ 将1.txt移动到上级文件夹 mv 1.txt ~/Desktop/桌面
- cat 文件名 查看文件内容
- cp 文件名 ../ 把某文件复制到上层目录
- cp 文件名 ../ 文件名 把文件复制到上层目录的某个文件(覆盖)
- head -n 文件 查看文件前n行
- tail -n 文件 查看文件倒数n行
- Tab 键可以自动补全文件名 1.tab
- History 查看操作的记录
- echo hello >> 1.txt 追加hello到1.txt尾部echo hello > 1.txt 将hello覆盖1.txt内容 如果没有该文件 创建一个有内容的文件
- vi 文件名
- 进入i或者回车
- 退出编辑模式进入末尾命令行 esc shift+;
- q 退出无修改模式
- wq 退出并保存
- q!强制退出,不保存
- e!撤销更改,返回到上一次保存的状态
- w 文件名 另存为
Ctrl+u:向文件首翻半屏; Ctrl+d:向文件尾翻半屏; Ctrl+f:向文件尾翻一屏; Ctrl+b:向文件首翻一屏; Esc:从编辑模式切换到命令模式; ZZ:命令模式下保存当前文件所做的修改后退出vi; :行号:光标跳转到指定行的行首; :$:光标跳转到最后一行的行首; x或X:删除一个字符,x删除光标后的,而X删除光标前的; D:删除从当前光标到光标所在行尾的全部字符; dd:删除光标行正行内容; ndd:删除当前行及其后n-1行; nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字; p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方; P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方; /字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示; ?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示; a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作; a:在当前字符后添加文本; A:在行末添加文本; i:在当前字符前插入文本; I:在行首插入文本; o:在当前行后面插入一空行; O:在当前行前面插入一空行; :wq:在命令模式下,执行存盘退出操作; :w:在命令模式下,执行存盘操作; :w!:在命令模式下,执行强制存盘操作; :q:在命令模式下,执行退出vi操作; :q!:在命令模式下,执行强制退出vi操作; :e文件名:在命令模式下,打开并编辑指定名称的文件; :n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件; :f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例; :set number:在命令模式下,用于在最左端显示行号; :set nonumber:在命令模式下,用于在最左端不显示行号;
- 规则:
- /*!.gitignore!/fw/bin/!/fw/sf/
- 说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;
- 如何上传本地项目
- 1,
- 这个创建有创建空仓库 和有东西仓库两种 如果你只填项目名 项目描述
如上图所示是属于一个新仓库
用git命令窗可操作Linux命令 echo "# js00000" >> README.md 追加# js00000到 README.md尾部 echo hello > 1.txt 将hello覆盖1.txt内容 如果没有该文件 创建一个有内容的文件
在你的本地项目文件夹下操作 git init 初始化仓库(node都可以操作linux命令)
最常用的几行代码 下面这几行 git add 文件名(或者.)把本地文件添加到暂存区 git commit -m "注释(提交说明会在线上提交文件后看到)" 将暂存区文件提交到历史区 git remote add origin(默认给仓库地址起的名字可以自己起) 仓库地址 与线上仓库建立连接关系 git push -u origin master 提交线上
关于线上仓库有文件的情况 也就是创建仓库时勾选了包括README.md.gitignore 协议 如下图
这个样子 这种情况在本地项目文件夹下 运行git bash 先git init 然后 git pull 项目地址(一定要先pull一下) 下面还是那些步骤 其中还会用到一个 git status 查看提交文件状态 为红色则在文件夹内工作区 为绿色则在暂存区 git remote查看绑定的远程地址