git常用命令

ctrl + l :清空编辑区

git add . //把文件添加到暂存区
git commit -a -m "备注" //把暂存区的文件提交到仓库
git status //查看仓库状态
git diff readme.txt //查看修改了什么
git log //查看commit信息,可用于版本回退 git reflog //查看命令历史,用于到未来的那个版本
git reset --hard HEAD^ //回退到上一个版本
git reset --hard HEAD~5 //回退到上5个版本
git reset --hard 33562555 //到commit_id的版本
git reset HEAD readme.txt //把暂存区的修改撤销掉,重新放到工作区,就是撤销add操作
git reset HEAD . 全部撤销add操作

git checkout -- readme.txt //把文件在工作区的修改全部撤销
git rm readme.txt //从版本库删除一个文件 , 删除完要git commit

git remote add origin git@git.... //关联本地库和远程库

git push -u origin master //把本地库的所有内容推送到远程,由于是第一次推送,远程库是空的,所以要加上-u
// 这样不但把本地推送到远程,还把本地master分支和远程master分支关联,以后再用就写
//git push origin master

git clone git@.....把远程库克隆到本地

git checkout -b dev //创建dev分支,并切换 相当于 git branch dev //创建 git checkout dev //切换
git branch 查看当前分支

git merge dev //把dev分支的内容合并到master分支上
git branch -d dev //删除dev分支

当出现bug 但是dev分支内容还不能提交时,把现场储存起来。
git stash 保存本分支现场
git stash pop 恢复现场并删除stash
git stash list //查看保存现场的内容

git remote //查看远程库的信息 git remote -v 更详细的信息


git中,每一次提交都会生成一个commit
git revert会生成一个新的commit,将之前的某个commit的修改恢复过来
git reset会将HEAD移动到某个commit上,换种说法就是将某个commit变成最后一个commit


$ git pull <远程主机名> <远程分支名>:<本地分支名>
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。

git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git fetch origin master 从远程origin的master分支下载最新版本到origin/master






git fentch <远程主机名> //将某个远程主机名的更新全部取回到本地
git fentch <远程主机名> <分支名>
所取回的更新在本地上用“远程主机名/分支名”的形式读取
git branch -r //查看远程分支
git branch -a //查看所有分支
取回远程主机的更新以后,可以在它的基础上,使用git checkout命令创建一个新的分支。
git checkout -b newBrach origin/master //表示,在origin/master的基础上,创建一个新分支。

也可以使用git merge命令或者git rebase命令,在本地分支上合并远程分支。
$ git merge origin/master
# 或者
$ git rebase origin/master


清除缓存:git rm -r --cached .


每次push之后再次编辑application/config/development/constants.php define("MAIN_DOMAIN", "czl.com"); 改为 define("MAIN_DOMAIN", "swredis.com");


重要以下:

切到新分支:
git checkout daily-20161220

在同一个分支下 别人push的代码通过以下命令进行更新,更新后自己就得到最新的代码了
$ git pull --rebase
以上相当于:git fetch branch 或git fetch origin 用git remote 看branch 还是 orig
git rebase branch/daily-20161220 用 git branch看当前所在的分支名
上载:
git push branch daily-20161220 上载之前要执行git checkout . 然后执行以上两条语句

撤销修改:
git checkout application/views/red_theme/yirongfu/header.php
git checkout . 本地所有修改的没有提交的都撤销

add 和 commit文件
git status
git diff
git add aoolic/.../.php
//git status
git commit commit -a -m



解决冲突

pull --rebase
git status 查看哪个文件冲突了 然后解决冲突,修改完再git status 看是否还有冲突
git add
git rebase --continue

pull origin dev-1212
git status 查看哪个文件冲突了 然后解决冲突,修改完再git status 看是否还有冲突
git add
git commit -a -m"45"


从master上切新分支
git checkout master
git pull origin master
git checkout -b daily-20171226
git push origin daily-20171226

合master
git checkout master
git pull origin master
git merge daily-20171226 --no-ff -m "合并嘉兴优化"
git push origin master

如果失败了可能是本地master不是最新的,引起了冲突
删除本地master重新切一个最新的master
先切换到其他分支
git branch -D master
git fetch origin master
切到master然后重新合master

撤销一次merge git merge --abort

  

原文地址:https://www.cnblogs.com/xin-jun/p/9294506.html