Git版本控制工具常用命令


1 创建版本库
  ① 创建一个空的目录
  ② 进入该目录
  ③ 将该目录变成Git可以管理的仓库
    git init
2. Git管理文件
  ① 将某文件添加到Git仓库中
    git add 文件名
  ② 把文件提交到仓库中
    git commit -m "说明"

3. Git管理本地文件
  ① 查看git的状态
    git status
  ② 查看文件与上一次有什么不同
    git diff 文件名
  ③ 查看提交日志
    git log
    git log --pretty=online 规范输出日志
  ④ 回退到上一个版本
    git reset --hard HEAD
  ⑤ 回退到特定的版本
    git reset --hard 版本id(id的前几个字符即可识别)
    ⑥ 查看git的每一次命令
    git reflog
  ⑦ 查看工作区和版本库内文件的不同
    git diff HEAD --文件名
  ⑧ 丢弃工作区的修改
    git checkout -- 文件名
    --符号很重要,如果没有该符号则表示切换到另一分支
  ⑨ 撤销暂存区的文件
    git reset HEAD 文件名
    可以将暂存区的修改回退到修改区
  ⑩ 删除版本库中的文件,当文件被删除掉后,版本库中还会存留,可以使用git rm命令删除掉
    git rm 文件名
    git commit -m "..."
    如果删除错了但没有提交,可以使用checkout恢复
    git checkout -- 文件名
    如果删除错了但已经提交,可以使用git reset回退
    get reset --hard 版本号回退
4. Git远程仓库
  ① 添加远程库
    git remote add origin 仓库url地址
    git remote add [<options>] <name> <url>
    eg:
      git remote add origin https://github.com/FengChen0315/Firstgitproject.git
      git push -u origin master
  ② 从远程仓库克隆
    git clone [url]
5. 分支管理
  ① 创建合并分支
    git checkout -b dev 创建并切换到dev分支
    相当于:
      git branch dev
      git checkout dev
  ② 合并分支
    git checkout master 切换到主分支
    git merge dev 合并dev分支到主分支
    git branch -d dev 删除分支dev
  ③ git解决冲突
    当git无法自动合并分支时,就必须首先解决冲突。解决完冲突后,再提交,合并完成。
    解决冲突就是把Git合并失败的文件手动编辑为我们希望的内天,再提交。
  ④ 查看分支合并图
    git log --graph
  ⑤ 使用普通模式进行合并
    git merge --no-ff -m "description" 分支名
    --no-ff参数表示禁用Fast forward,使用该参数就可以使用普通模式合并,合并后的历史有分支,可以看出来曾经做过合并。
  ⑥ "存储"当前工作现场和恢复工作现场,在stash前必须先add添加到暂存区
    git add 文件名
    git stash -存储当前工作现场
    git stash list -查看存储的工作现场
    git stash pop -恢复工作现场
    恢复工作现场的另一种方法:
    git stash apply stash@{编号}
    git stash drop
  ⑦ 强行删除一个没有被合并过的分支
    git branch -D 分支名
    每开发一个新功能,最好新建一个分支
  ⑧ 推送分支
    git push origin mster
    git push origin 分支名
  ⑨ 多人协作的工作模式
    1. 首先,可以试图用git push origin <branch-name>推送自己的修改;

    2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

    3. 如果合并有冲突,则解决冲突,并在本地提交;

    4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

    5. 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。

    6. 这就是多人协作的工作模式,一旦熟悉了,就非常简单。
  ⑩ 将本地未push的分支提交历史整理成直线
    git rebase
    rebase的目的是使得我们在查看历史提交的变化时更容易。
6. 标签管理
  tag就是一个让人容易记得住的有意义的名字,它跟某个commit绑定在一起
  ① 创建标签
    git tag 标签名 # 创建标签
    git tag # 查看所有标签
    git tag 标签名 提交的id号 # 为某一个提交提案加id号
    git show 标签名 # 查看标签信息
    git tag -a 标签名 -m "说明" 提交的id号;-a指定标签名,-m指定说明文字
    标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
  ② 删除标签
    删除本地标签
    git tag -d 标签名
    删除远程标签
    git tag -d 标签名 # 先删除本地标签
    git push origin :refs/tags/标签名 # 删除远程标签
  ③ 推送标签到远程服务器
  git push origin 标签名 # 推送某个标签到远程服务器
  git push origin --tags # 一次性推送全部尚未推送的标签到服务器
7. 自定义Git
  ① 配置Git显示颜色
    git config --global color.ui true
  ② 忽略特殊文件
    添加一个.gitignore文件,在文件中写要忽略的文件
    提交.gitignore文件到Git
  ③ 配置别名
    git config --global alias. 别名 原命令 # 为命令设置别名

猜你喜欢

转载自www.cnblogs.com/py-jsblogbycf/p/10294907.html