使用说明
git add
git add 是一个多功能命名,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已经跟踪的文件放到暂存区,还能用于合并时把冲突的文件标记为已解决状态。
已经跟踪的文件修改后还是需要执行git add命令将修改的文件放到暂存区的。
git commit -a
一般执行git commit之前要先执行git add,将修改的文件加到暂存区,执行git commit -a 可以省去git add命令
git commit --amend
--amend 用于撤销上一次的提交,重新提交替换上一次的提交,如果一个一个文件忘了暂存了,导致没有提交上去,可以先执行git add 然后再执行git commit --amend
git checkout -b 'xxxx'
创建并检出名为‘xxx’的分支,等价于:
git branch 'xxx'
git checkout 'xxxx'
如果想在某个分支的基础上创建分支,必须要先切换到该分支后再创建新的分支,例如在master分支的基础上创建分支:
git checkout master
git checkout -b 'xxx'
git branch -d xxx
删除分支xxx,删除分支的时候必须先退出分支,退出分支直接git checkout 到其他分支即可
git branch -D xxx
强制删除xxx分支,如果xxx分支尚未合并到别的分支,执行git branch -d xxx,会失败,如果要强制删除可以执行该命令
git merge xxx
将xxx分支合并到当前分支,执行该命令前要先切换到要合并的分支,例如要把xxx分支合并到master分支:
git checkout master
git merge xxx
git cherry-pick <commit id>
将指定的某次提交合并到当前分支
git remote -v
查看远程url
git remote add xxx remoteurl
添加远程仓库url
git remote add zhangzhanyang ssh://git@git.sankuai.com/~zhangzhanyang/banma_android_crowdsource_zzy.git
git remote set-url
修改远程仓库url
git remote set-url origin git@git.oschina.net:zhzhyang0313/photoweb.git
git reset --hard $commitId
将本地仓库回退到某次提交$commitId为某次提交的id
git reset --soft 版本号
将本地仓库回退到某次提交,并且保留本地修改的信息
git push origin xxx
将当前分支commit推送到远程分支xxx
git push origin xxx -f
强制将当前分支commit推送到远程分支xxx
git push -f
强制推送到远程仓库,如果远程仓库版本较高会被覆盖掉
git stash
将工作区中内容储藏
git stash list
查看储藏区内容
git stash apply [--index]
从储藏区恢复到工作区
git mv -f myfile MyFile
修改文件名
git fetch origin
将远程分支拉到本地
git checkout -b xxx origin/xxx
用远程分支xxx创建本地分支xxx
删除远程仓库上多余的文件
git clone xxxxaddress
git pull origin branchName
rm -rf xxxfile
git commit -m 'delete'
git push origin branchName
问题集锦
1、git中报unable to auto-detect email address 错误的解决办法
提示
** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'tim@newton.(none)')
解决办法
找到工程目录的.git文件夹,打开之后找到config文件,在最后边加上一句话
[user]
email=your email
name=your name
your email 和your name随便写上就行
或者
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
2、error: failed to push some refs to .....
原因没有权限
解决方法:
添加权限或者新建一个分支提交
3、使用git push没有报错,但是远程仓库没有更新的问题
解决方法:
https://blog.csdn.net/YBan10032/article/details/81903675
4、gitlab error: you need to resolve your current index first
此问题出现在git merge未成功然后切换分支的时候出的错误,
解决方法:git --reset merge
5、git diff old mode 100644 new mode 100755
切换到源码根目录下执行
git config --add core.filemode false
6、git中怎样实现忽略已经提交过的文件和拉取后不提交配置文件
把文件加入不提交队列:
git update-index --assume-unchanged 文件
取消加入不提交队列:
git update-index --no-assume-unchanged 文件