建设个电影网站多少钱,网站建设的申请,网站建设SEO优化哪家好,wordpress 手机 登陆不了文章目录 前言基础知识集中式版本控制 - SVN分布式版本控制 - Git常用的Linux命令Git工作区域 Git 常用命令获取Git仓库添加/提交/推送/删除/回退文件查看信息Git分支Git标签Gitk#xff1a;一个排查Git问题的工具 前言
git是用C语言开发的#xff0c;以追求最高的性能。git… 文章目录 前言基础知识集中式版本控制 - SVN分布式版本控制 - Git常用的Linux命令Git工作区域 Git 常用命令获取Git仓库添加/提交/推送/删除/回退文件查看信息Git分支Git标签Gitk一个排查Git问题的工具 前言
git是用C语言开发的以追求最高的性能。git自动完成垃圾回收也可以用命令git gc --prune直接调用。
基础知识
集中式版本控制 - SVN
所有的版本数据都保存在服务器上协同开发者从服务器上同步更新或上传自己的修改。
所有的版本数据都存在服务器上用户的本地只有自己以前所同步的版本如果不连网的话用户就看不到历史版本也无法切换版本验证问题或在不同分支工作。而且所有数据都保存在单一的服务器上有很大的风险这个服务器会损坏这样就会丢失所有的数据当然可以定期备份。
分布式版本控制 - Git
每个人都拥有全部的代码。
所有版本信息仓库全部同步到本地的每个用户这样就可以在本地查看所有版本历史可以离线在本地提交只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据只要有一个用户的设备没有问题就可以恢复所有的数据但这增加了本地存储空间的占用。
不会因为服务器损坏或者网络问题造成不能工作的情况
Git下载https://git-scm.com/
Git Bash应用Unix与Linux风格的命令行使用最多推荐最多
Git GUI应用图形界面的Git不建议初学者使用尽量先熟悉常用命令;
GitK命令内建的图形化 git打开Git Bash进入相应的git仓库输入gitk即可。
常用的Linux命令
cd 进入目录
cd .. 回退上一个目录
pwd 显示当前所在目录路径
ls(ll) 列出当前目录中所有文件后者更为详细加-al查看隐藏文件
touch 新建一个文件如touch test.txt就会在当前目录下新建test.txt文件
rm 删除一个文件如rm test.txt就会删除当前目录下的test.txt文件加-rf删除文件夹无需确认
mkdir 新建一个文件夹Git工作区域
Git本地有三个工作区域工作目录Working Directory、暂存区Stage/Index)、本地仓库、远程仓库Remote Directory
Workspace工作区就是你平时存放项目代码的地方 Index / Stage暂存区用于临时存放你的改动事实上它只是一个文件保存即将提交到文件列表信息 Repository仓库区或本地仓库就是安全存放数据的位置这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本 Remote远程仓库托管代码的服务器可以简单的认为是你项目组中的一台电脑用于远程数据交换。
日常使用要记住上图6个命令 review操作
git clone - 克隆 git checkout - 检出 git add - 增加 git commit - 提交 git push - 推送 git pull --rebase - 拉取 git review branch_name - review 团队内会有一位Code reviewer负责代码管理的团队成员一般执行完git commit之后不会自己手动执行git push而是执行git review而后有reviewer检验完代码后进行git push。
Git 常用命令
获取Git仓库
当前目录新建一个Git代码库 $ git init 从远程克隆 $ git clone 远程Git仓库地址 $ git clone -b 分支名 远程Git仓库地址 显示所有远程仓库 $ git remote -v 添加远程仓库 $ git remote add 名称 url地址 $ git remote add origin gitgithub.com:XXX/XXX.git 移除远程仓库 - 只是在本地移除记录并不会影响远程仓库 $ git remote rm 名称 (一般是origin) 从远程拉取代码 $ git pull 名称 (一般是origin) 分支名 (master分支) $ git pull 名称 分支名 --allow-unrelated-histories git pull git fetch git merge FETCH_HEAD git pull --rebase git fetch git rebase FETCH_HEAD
** 解决连接远程仓库出现ssl认证问题 $ git config --global http.sslVerify “false” 测试一下通不通 $ ssh -T gitgithub.com
添加/提交/推送/删除/回退文件
添加指定文件到暂存区如果是多个文件使用空格分隔 $ git add 文件 文件 … 当前目录及其子目录的文件都加入到暂存区 $ git add . 代码从暂存区提交到本地仓库 $ git commit -m “描述信息”
**本地推送到远程仓库 $ git push 名称 (一般是origin) 分支名 (master分支) 第一次提交 $ git push -u origin 分支名 需要输入用户名和密码 删除文件 $ git rm 文件 将暂存区文件取消暂存 $ git restore --staged 文件 将本地仓库文件回退到上个版本 $ git reset --hard HEAD^ 回退到前3次提交之前以此类推回退到n次提交之前 $ git reset --hard HEAD~3
退到/进到 指定commit的sha码提交ID可使用git log查看 $ git reset --hard 提交ID
查看信息
查看文件状态 $ git status 查看文件修改哪些内容 $ git diff 查看日志记录 $ git log 查看当前分支的版本历史 $ git log
搜索提交历史根据关键词 $ git log -S 关键词
显示指定文件是什么人在什么时间修改过 $ git blame 文件 显示今天你写了多少行代码 $ git diff --shortstat “{0 day ago}” 显示当前分支的最近几次提交 $ git reflog 显示所有提交过的用户按提交次数排序 $ git shortlog -sn
Git分支
查看本地分支 $ git branch 查看远程分支 $ git branch -r 查看远程全部分支 $ git branch -a 创建分支 $ git branch 分支名 切换分支 $ git checkout 分支名 将本地分支推送到远程仓库 $ git push orighn 分支名 合并分支 $ git merge 分支名 例子将b分支合并到a分支下 $ git checkout a $ git push orighn b 删除分支 $ git branch -b 分支名 强制删除 $ git branch -D 分支名 删除远程仓库分支 $ git push orighn -b 分支名 代码冲突解决 打开冲突文件并修复冲突内容最后执行git add命令
Git标签
创建标签 $ git tag 标签名 查看标签 $ git tag 查看信息 $ git show 标签名 将当前标签推送远程仓库 $ git push origin 标签名 检出标签 - 在新的基础上创建新的分支再进行开发 $ git checkout -b 新的分支名 标签名 删除本地标签 $ git tag -d 标签名 删除远程仓库标签 $ git push origin :refs/tags/远程仓库标签名
Gitk一个排查Git问题的工具
gitk是一个非常强大的图形化工具现在安装git会自带gitk的应用程序在代码库的根目录下直接输入gitk会打开这个界面 gitk的主界面主要包含5个部分
主菜单栏显示区提交信息显示区显示提交的基本信息包括节点树、message、提交人和提交时间查询条件检索区根据检索条件查找的窗口具体内容显示区显示 commit 的变更记录或两个 commit 的 diff 内容文件列表显示区显示的commit的文件列表或两个commit的diff文件列表
每个点代表一次提交线代表父子关系而彩色的方块则用来标示一个个引用。 黄点表示 HEAD红点表示尚未提交的本地变动。