git 提交出现这个错误fatal: Unable to create ‘project_path/.git/index.lock’: File exists
解决办法:rm -f ./.git/index.lock
将本地项目传到GitHub上步骤
1)登录自己GitHub账号
2)new repository
3)切换到本地项目根目录下 git init 初始化
4)git add .
5)git commit -m 'message'
6)关联远程仓库 : git remote add origin '远程仓库地址别名'
7)git push -u origin master
git 提交不必要的文件:
touch .gitignore
vim .gitignore
把需要忽略的文件名/文件夹/文件规则 添加进去
一,四个区
工作区-暂存区-本地仓库-远程仓库
git add
git commit -m 'comments'
git push 远程仓库
二,撤销修改
1在工作区修改:git checkout --file
2工作区修改后添加到暂存区后:git reset HEAD file(暂存区回退到最新版本,同时把暂存区的修改回退到工作区)
git checkout --file
3 提交到本地仓库:git reset --hard HEAD^(回退到上一个版本)
三,分支管理
1 创建分支 git branch name
2 查看分支 git branch
3 切换分支 git checkout name
4 创建+切换分支 git checkout -b name
本地新建分支并拉取远程分支代码
git checkout -b 本地分支名 origin/远程分支名
5 删除分支 git branch -d name
6 合并某分支到当前分支 git merge name
在非主分支dev下创建新分支 zm_dev
git checkout dev
git pull origin dev
git checkout -b zm_dev
四,解决冲突
手动解决 ,使两个分支提交的内容一致。
五,多人协作
1 试图推送自己修改的代码 git push origin branch-name
git commit --amend
1)修改最后一次提交信息。
例如:最近一次修改: git commit -m 'c' 应该为c3,可以使用
git commit --amend -m 'c3'
2)修改最后一次提交的文件
如果想要修改最后一次提交的文件,但是避免提交记录很多累赘,可以使用此命令,首先用git add增加到暂存区,有了跟踪状态,然后
git commit --amend
2 推送失败,需要先pull 代码,试图合并
merge和rebase
git pull = git fetch + git merge FETCH_HEAD
git pull --rebase = git fetch + git rebase FETCH_HEAD
区别:merge会产生新的节点
D---E test
/
A---B---C---F--- master
在master下,git merge test
D------E
/ \
A---B---C---F--- G------test , master
在master下,git rebase test
A---B--D--E---C'---F'------test , master
3 合并有冲突,需要解决冲突,在本地提交
4 解决冲突后再推送。push
六,保存现场
stash 是本地的,不会通过push推送到git server上。实际应用中推荐给每个stash增加上message,记录版本
git stash(保存现场)
git stash list (查看stash列表)
git stash pop (删除缓存堆栈中到第一个stash,并且应用恢复到当前目录)
git stash apply 不删除stash,可以多次将stash应用到工作目录中。)
git stash apply stash@{0}(多个stash,恢复到指定stash)
git stash -save 'temp work'
git 中报错
fatal: unable to auto-detect email address (got 'tim@newton.(none)')
解决办法:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
git 对文件名大小写修改不敏感问题
今天提交了代码,发现修改的文件名由小写字母改成大写字母,却没有在git status中显示出来,于是,使用了如下命令,可以了。
git mv abc.vue Abc.vue