Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目;Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件;Git与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

命令总结

 1 . ===== 初始化文件 =====
 git init  

 2 . ===== 关联远程仓库 =====
 git config --global user.name ""
 git config --global user.email ""

 3 . ===== 创建SSH key =====
 ssh-keygen -t rsa -C 123456@qq.com

 4 . ===== 查看仓库配置 =====
 git config -list

 5 . ===== 克隆远程仓库 =====
 git clone https://github.com/xxxxx/xxx.git

 6 . ===== 本地与Github关联 =====
 git remote add origin https://github.com/xxxxx/xxx.git

 7 . ===== 本地与Gitee关联 =====
 git remote set-url --add origin https://gitee.com/xxxxx/xxx.git

 8 . ===== 创建一个文件 =====
 touch xxx.html,创建了一个xxx.html的文件

 9 . ===== 查看改动状态 =====
 git status -s 
-s表示short,输出两列标记,第一列是对staging区域而言,第二列是对working目录而言

 10 . ===== 创建本地分支 =====
 git checkout -b dev ,创建一个dev的本地开发分支

 11 . ===== 查看分支 =====
 git branch -a 或者 git branch

 12 . ===== 切换分支 =====
 git checkout master ,切换到master分支

 13 . ===== 合并分支 =====
 git merge dev ,先切换到主分支master,然后合并开发分支dev;
 
 如果报错提示:fatal: refusing to merge unrelated histories,则使用下面强制合并:
 git pull origin xxx --allow-unrelated-histories

 14 . ===== 拉取远程分支master / dev =====
 git pull origin master / dev

 15 . ===== 推送本地到远程master =====
 git push origin master  或者  git push -u origin master

 16 . ===== 查看推送状态 ======
 git remote -v

 17 . ===== 查看日志 ======
 git log 或者 git relog 查看历史版本,方便回退
 git log --oneline --number: 每条log只显示一行,显示number条
 git log --oneline --graph: 可以图形化地表示出分支合并历史.
 git log branchname 可以显示特定分支的log.
 git log --oneline branch1 ^branch2,可以查看在分支1,却不在分支2中的提交.^表示排除这个 
 分支(Window下要给^branch2加上引号).
 git log --author=[author name] 可以指定作者的提交历史.
 git log --since --before --until --after 根据提交时间筛选log
 git reflog   查看历史版本,方便查找回退的版本号

 18 . ===== 回退版本 ======
 git reset --hard ^ 或者 git reset --hard xxxxx版本号

 19 . ===== 提交改动文件 ======
 git add . 或者 git add xxx.html

 20 . ===== 提交改动备注 ======
 git commit -m "xxxx修改"

 21 . ===== 启动本地服务 ======
 cd /d/xxxxx/xxxxx/  切换到目录
 php artisan serve   启动服务
 
 22 . ===== 上传文件到服务器 ======
 scp index.zip root@17.52.255.3:/usr/share/nginx/html

基本使用

> 1: Github创建一个仓库(如果有请省略)

> 2: 复制仓库https链接 如https://github.com/Jensonhui/你的仓库名.git

> 3: 本地新建一个文件夹,右键鼠标选择[ git Bash Here ]

> 4: git clone 复制的仓库https链接

> 5: 本地会多出一个文件夹,与github仓库名称一致;接下来把你的项目文件粘贴到这个文件夹中

> 6: 然后到终端执行命令: cd 刚刚生成的文件夹(与github仓库同名)

> 7: git add .  // 全部提交

> 8: git commit -m "first commit"  // 提交备注

> 9: git push -u origin master   // 提交项目到github仓库,这里可能需要输入账户、密码

此时,一个新的项目就提交到远程仓库了,接下来就是在本地创建一个分支,开始你的代码之旅~

分支管理

 背景:项目由多人共同参与开发时

 开发:克隆远程仓库到本地,新建本地开发分支,开发完成后合并到master,然后推送到远程

 常用命令:
 git clone https://github.com/xxxx/xxx.git   克隆远程仓库到本地
 git checkout -b dev   新建本地开发分支
 git status   查看改动文件
 git add .   提交全部文件
 git commit -m""   添加改动标记
 git branch   查看当前分支
 git checkout master   切换到主分支master
 git pull origin master   拉取远程主分支代码
 git merge dev   合并本地开发分支到master
 git push origin master   推送本地到远程master
 git checkout dev   切换到本地开发分支

 =========== 如果粗心忘记先拉去后合并,且还没有提交 ===========

 第一种方式:查看提交记录,回退到之前版本:
 git log ;
 git reset --hard xxxxx

 第二种方式:将远程拉取到本地,使用git stash pop
 git stash   将本地代码stash到仓库
 git pull   拉取远程代码
 git stash pop   将仓库代码合并到本地最新代码
 git add .
 git commit -m""
 git pull origin master
 git push origin master

强制更新

放弃本地修改,强制更新远端代码

1 . 指令是下载远程仓库最新内容,不做合并 
git fetch --all  

2 . 指令把HEAD指向master最新版本
git reset --hard origin/master

3 . 重新拉取更新
git pull
文章目录