Git常用命令及问题处理

发表于:2018-5-25 10:55

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:你慧快乐    来源:简书

  基本命令
  初始化一个Git仓库,使用git init命令。
  1. 使用命令git add,注意,可反复多次使用,添加多个文件;也可一次add多个文件,文件用都好分隔,add是添加到暂存区
  2. 使用命令git commit -m,可以多次add,一次commit添加 -a 参数可以add全部修改的文件,一次提交,跳过add ,git commit -a -m "my first commit"
  3. 要随时掌握工作区的状态,使用git status命令。
  4. 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
  5. HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
  6. 版本穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。git log --graph --pretty=oneline --abbrev-commit 缩写的id并显示简单图git log --pretty=oneline
  7. 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
  8. 用git diff HEAD --命令可以查看工作区和版本库里面最新版本的区别
  9. 修改了,但是未add,通过git checkout -- file 撤销工作区修改,若两次修改,只add一次,checkout只能回到add后的,也就是说checkout不能撤销add的
  10. 如果已经add了,怎么办?git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本此时,暂存的修改被撤销,但修改还在,相当于修改后未add,此时想撤销就可以用checkout了
  远程
  11. 本地库和远程库关联 git remote add origin git@github.com:michaelliao/learngit.git
  查看远程库:git remote
  Git remote -v 显示更详细的信息,包括可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址
  查看远程库地址:git remote xxx
  删除远程库:git remote rm xxx
  修改远程库:git remote set-url xxx
  关联后,使用命令git push -u origin master第一次推送master分支的所有内容
  git push origin推送到指定远程分支
  12. 克隆仓库:git clone 可以使用git的原生协议,也可以使用https协议,但通过ssh支持的原生git协议速度最快
  分支
  13. 查看分支:git branch
  本地和远程分支 git branch -a
  创建分支:git branch
  切换分支:git checkout
  创建+切换分支:git checkout -b
  合并某分支到当前分支:git merge
  删除本地分支:git branch -d
  强制删除未合并的分支:git branch -D
  删除远程分支:git push origin --delete
  推送当前分支到远程仓库:git push --set-upstream origin
  14. git merge命令用于合并指定分支到当前分支,优先使用快速合并不使用快速合并 git merge --no-ff -m "merge with no-ff" dev
  15. 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
  16. 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
  17. 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
  贮藏区
  当前的修改,尚未达到可提交的状态,又需要切换到其他分支开发,可先add,然后git stash添加到暂存区,添加暂存后文件就不在工作区了
  18. 查看暂存列表:git stash list
  19. 恢复暂存区:
  一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
  另一种方式是用git stash pop,恢复的同时把stash内容也删了如果暂存有多个,可以在恢复和删除命令的后面添加编号:stash@{0},例如git stash drop stash@{0}
  20. rebase操作可以把本地未push的分叉提交历史整理成直线;
  rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
  21. git tag查看所有标签
  git tag <name>就可以打一个新标签,默认标签是打在最新提交的commit上的
  git tag <name> <commit id>在指定提交点打标签
  22. git show <tagname>查看标签信息
  创建带有说明的标签,用-a指定标签名,-m指定说明文字
  git tag -a v0.1 -m "version 0.1 released" 1094adb
  删除标签:git tag -d <name>
  23. 推送标签到远程: git push origin推送全部本地标签: git push origin --tags
  24. 删除远程标签:
  git push origin :refs/tags/前提是删除本地标签
  配置
  git 修改当前的project的用户名的命令为:git config user.name;
  git 修改当前的project提交邮箱的命令为:git config user.email
  修改全局配置命令分别为: git config --global user.namegit config --global user.email
  免费Git服务
  github:https://github.com/
  Gitlab:https://about.gitlab.com/
  Coding:https://coding.net/
  Gitee:https://gitee.com/
  搭建git服务:https://gogs.io/
  问题列表
  1) 修改错误提交,或者提交错分支:
  git reset --soft <commit id>先本地回退到响应版本
  注:--soft回退后保留当前工作修改,可重新提交,--hard放弃修改
  git push origin <branch name> --force force用于强制覆盖远端
  此时切换到想要提交的分支,git checkout <branch name>此时回退后的内容还在,可继续commit和push操作
  注:
  git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息,若要提交需再次add
  git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
  git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
  2) 由于错误用户信息导致无法push由于log里已经包含了提交用户信息如果服务器做了校验,所以这次提交是无法push了,只能回退此次提交,然后再重新提交
  git reset <commit id>切换到你上次提交之前的版本,也就是第二个版本,可以直接使用git reset HEAD^
  然后就可以通过git config user.name修改用户信息了,修改完后通过git add、git commit等进行提交

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号