git 命令
git clone
git clone [-b <分支名>] <仓库Url> [<存储路径>]
git pull
从远程获取最新版本并merge到本地
git pull = git fetch + git merge
git pull <远程主机> <分支名> : <本地分支>
git fetch
从远程获取最新版本到本地,不会自动merge
git fetch <远程主机名> <分支名>
git merge
git merge FETCH_HEAD
将目标分支最新的commit记录合并到当前分支
git checkout -b <分支名>
创建新分支 <分支名>,并切换到新分支
git checkout -b newBranch origin/master
在origin/master
的基础上,创建一个新分支: newBranch
git push --set-upstream origin <分支名>
将新建分支上传到 Git服务器
切换分支
git checkout <分支名>
删除本地分支
git branch -d <分支名>
删除远程分支
git push origin --delete <分支名>
git fetch origin xx
git checkout yy
git merge FETCH_HEAD
将远程origin仓库的xx分支合并到本地的yy分支
git status
查看代码修改
git branch -r
查看远程分支
git branch -a
查看所有分支
git config --global core.editor notepad
修改 git 编辑器 为 记事本
git config --global user.name "name"
git config --global user.email "mail@mail.com"
配置用户名和邮箱
git config -l
查看配置
git checkout -- <file>
撤销文件修改
git diff
git diff <file>
查看文件变化
git add
git commit
git push
如果一个文件在服务器上已经做了修改,然后在本地开发中又做了一些修改的时候,再发布这个文件时很容易造成代码冲突,错误如下
error: Your local changes to the following files would be overwritten by merge:
...
Please, commit your changes or stash them before you can merge.
如果希望保留远程服务器上所做的改动,仅仅合并新修改
git stash //将新提交的且冲突的修改,储藏起来
git pull //再次拉取代码
git stash pop //重新应用储藏起来的代码
如果希望用代码库中的文件完全覆盖本地工作版本
git reset --hard //重置
git pull
git stash
git stash save "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
git stash list :查看stash了哪些存储
git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储
git stash clear:
删除所有缓存的stash
git stash -p
交互式命令, 一个文件一个文件的遍历,决定每个文件的操作方式
遇到需要stash的文件, 输入y,
不需要stash需要commit的文件, 输入n
如果接下来没有需要stash的文件, 则输入q
git revert 提交编号
撤销某次提交