Git常用命令
正常操作
- git status :提交前先检查下修改了什么内容,当前Git目录下各文件的状态
- git add :添加文件或者目录,也可以使用通配符
git add filename # add file only
git add *.app # add all app files
git add /home/app/ # add all files in /home/app - git commit :提交修改
git commit -m “add readme” 添加备注
git commit -a 跳过stage缓存区,直接提交当前目录下的所有修改 - git push 远程主机名 本地分支名 远程分支名 :将本地分支推到远程分支
git push origin --delete 分支名 删除远程分支 - git log :提交历史查看
git reflog 查看所有分支的所有操作记录 - git branch :显示当前所有分支
- git branch -vv:查看当前的本地分支与远程分支的关联关系
- git checkout -b testing :创建testing 分支并且切换testing分支
git branch testing # 创建testing 分支
git checkout testing # 切换到testing分支 - git merge hotfix :分支合并
git checkout master 将hotfix分支合并到master(主分支)上
git merge hotfix - git branch -d hotfix :删除分支
- **git stash save “save-name” ** 贮藏修改
git stash list 查看现有stash
git stash pop stash@{0} 应用贮藏并删除
git stash apply stash@{1} 应用贮藏不删除
git stash drop stash@{0} 删除贮藏
git stash show stash@{0} 查看指定贮藏
git stash show -p stash@{0} 查看指定贮藏所有diff - 重置源
查看源 git remote -vv
删除源 git remote rm origin
添加源 git remote add origin 源地址
将远程git仓库里的指定分支拉取到本地(本地不存在的分支)
git checkout -b 本地分支名 origin/远程分支名
远程主机的版本库有了更新,全部取回本地
git fetch
错误操作解决
- 遇到忘记pull代码,直接commit时,先pull代码,有冲突解决冲突,然后commit代码,最后push
- 不小心commit代码,想要撤回代码时,先git log,然后 git reset --hard 刚刚提交的错误commit_id
- 遇到合并提交时,先git log —oneline -最近提交次数,然后git cherry-pick commit_id
- 撤回提交, git log,git reset --hard commit_id, git push -f origin master(强制提交)
创建新分支和远程分支关联
- git checkout -b fix-bug 创建+切换分支
- git branch -vv 查看当前的本地分支与远程分支的关联关系
- git push origin fix-bug 将本地新建分支push到自己的本地远程origin上
- git branch --set-upstream-to=origin/fix-bug 把本地分支与远程origin的分支进行关联处理(通过 --set-upstream-to 命令)
git fetch和git pull的区别
- git pull:相当于是从远程获取最新版本并merge到本地
- git fetch:相当于是从远程获取最新版本到本地,不会自动merge