git笔记

2017-12-17  本文已影响23人  2f1b6dfcc208
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:

原因:通常由于同时有两个进程执行了git操作,造成了冲突导致git被某个进程锁住了。
解决方法:rm -f .git/index.lock

error: Your local changes to the following files would be overwritten
by merge:server/models/lc.json
Please commit your changes or stash them before you merge.

原因:更新下来的内容与本地修改的内容有冲突,先提交你的修改或者将本地修改暂时存储起来
解决方法

  1. 并入远程仓库的修改,解决冲突合并
    git stash 先将本地修改暂存起来,git stash list可以查看暂存信息
    git pull 拉取远程代码
    git stash pop 还原暂存信息
    系统会自动合并修改的内容,但需要手动修改冲突,可使用 git diff -w +文件名确认代码是否自动合并了,然后修改冲突内容

  2. 将远程仓库的修改完全覆盖本地工作版本
    git reset --hard HEAD^
    git pull

git init
git remote add origin <repository url>
git pull origin master 
...add and commit here...
git push -u origin master (使用-u 参数指定origin为默认主机,后面就可以不加参数使用git push)
git checkout -b gh-pages  //新建gh-pages分支
git branch  //查看当前所在分支
git checkout master //切换到主分支
git subtree push --prefix=dist origin gh-pages  //将主分支的dist目录下的文件推送到远程gh-pages分支下

git有四个区的概念:

5种状态:

检查修改:
已修改未暂存 - git diff
已暂存未提交 - git diff --cached
已提交未推送 - git diff master origin/master

撤销修改:
已修改未暂存 - git checkout . || git reset --hard
已暂存未提交 - git reset; git checkout . || git reset --hard
已提交未推送 - git reset --hard origin/master
已推送 - git reset --hard HEAD^

git 提交代码

列出本地所有分支

git branch

列出远程所有分支

git branch -r

列出所有本地分支和远程分支

git branch -a

创建分支,但仍然停留在当前分支

git branch <branch>

创建分支,并切换到该分支

git checkout -b <branch>

切换到指定分支

git checkout <branch>

合并分支到当前分支

git merge <branch>

删除分支

git branch -d <branch>

删除远程分支

git push origin --delete [branch-name]
git branch -dr [origin/dev]

git checkout <branch> 从master切换到开发分支上
git merge origin master ,拉取远程仓库最新的代码合并进当前分支,(先更新本地的主分支至最新)
git add . ,追踪文件的变化
git commit -am '备注信息', 将代码提交到本地仓库
git push ,本地仓库代码推送到远程仓库,第一次需执行git push --set-upstream origin <branch>来创建远程分支
提交pull request,管理员审核

git status 查看当前状态
git diff 查看具体变化(q退出)
git difftool 查看原来的文件和修改后的文件对比

上一篇下一篇

猜你喜欢

热点阅读