安装与配置
教程链接
代码上传到远程仓库
workspace:当前所在的工作目录
stagingarea:修改暂存区
loacl repository:本地仓库
remote respository :远程仓库
我们首先在workspace目录编写代码、修改文件,然后需要使用add方法先将修改的部分添加到暂存区,commit方法添加到本地仓库。最终使用push方法上传代码。
总流程:
git init //将当前目录初始化为git可管理目录,生成.git目录里面包含文件相关信息
git add .//将当前目录下的所有修改文件提交至暂存区
git commit -m "first commit"//将暂存区的内容添加至本地仓库,并注释“first commit”
git remote add origin https://github.com/liyinchigithub/Git-commands.git//绑定所需要的远程仓库
git push origin master//提交代码到master分支
git add:
git add Test//添加指定目录到暂存区,包括子目录:
git add README hello.js //添加2个文件到暂存区
git add .//添加当前目录下的所有文件到暂存区:
git commit:
git commit -m "提交内容备注"
git push:
git push origin master//将本地的 master 分支推送到 origin 主机的 master 分支。
git push --force origin master//本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数:
git push <远程主机名> <本地分支名>:<远程分支名>
remote:
git remote add origin https://github.com/liyinchigithub/Git-commands.git//绑定相关远程库
分支
创建一个分支相当于新建一个工作节点,不会影响其它已有代码看,如图新建了一个new分支
branch:
git branch //查看当前所有分支
git branch new//创建一个新分支new
git checkout new//切换到 new
git branch -d new//删除new分支
git push origin --delete new//删除远程代码库的new分支
分支合并
假设两个人同时在一个项目上面编写代码,A进行base分支,B进行new分支,他们都进行了一下代码更改,项目进展如下
如果将new添加到base上即为图1,将base添加到new中如图2
合并原理为三项合并,假设当前是将new合并至base中
这个base 为他们最近公共祖先,Mine为当前base,Yours为now分支合并后代码为
Paint(”hello“);(蓝色节点)
这个样子就是发生冲突了,是无法合并的,需要修改
git checkout new//切换到new工作节点
git pull//拉取相关代码并进行编码
git checkout master//切换为主分支
git merge new//将new分支合并到master分支
git push -u origin master//推送至远程库
回滚
git log // 查询要回滚的 commit_id
git reset --hard commit_id // HEAD 就会指向此次的提交记录
git push origin HEAD --force // 强制推送到远端
git reset HEAD^ hello.js //回退hello.js的上个版本
git reset --hard origin/master//回退成线上版本
撤销提交
git log // 查找需要撤销的 commit_id
git revert commit_id // 撤销这次提交
日志
git log --author//查看指定作者
git log --reverse //翻转
git log --oneline --before={3.weeks.ago} --after={2020-04-23} --no-merges//查看指定日期
git log --graph//查看分支合并情况
git reflog//查看commit日志
删除修改文件
git rm <file> // 从工作区和暂存区删除某个文件
git commit -m "" // 再次提交到仓库
git checkout -- <file>//暂存区覆盖工作区
git rm --cached <file>//工作区不做改变
从远程仓库拉取代码
git pull origin
git pull https://github.com/liyinchigithub/Git-commands.git
对比暂存区和工作区
git status
标签
版本可能会有多次提交,我们可以把某个提交打上标签,作为一个里程碑(version)
git add .
git commit -m "first commit"
git push origin master
git push origin v1.0
git push origin :refs/tags/v1.0//删除分支