og

git基础指令

Snipaste_20200623_171531.jpg

基础指令

基本操作指令

  • git init 创建新的 git 仓库
  • git clone /path/to/repository 创建一个本地仓库的克隆版本
  • git clone username@host:/path/to/repository 如果是远端服务器上的仓库
  • git add * 提出更改(把全部更改添加到暂存区)
  • git add 提出更改(把一个文件更改添加到暂存区)
  • git commit -m "代码提交信息" 提交到本地仓库HEAD
  • git push origin master 提交到远端仓库,可以把 master 换成你想要推送的任何分支。

如果没有clone已有本地仓库,推送到远程仓库

  • git remote add origin 添加远程仓库
  • git push -u origin master 提交到远端仓库,-u来来指定一个默认连接

分支指令

  • git checkout -b dev 创建dev的分支,并切换过去
  • git checkout master 切换回主分支
  • git branch -d dev 删除分支
  • git push origin dev 分支推送到远程库 除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的

更新与合并

  • git pull 更新你的本地仓库至最新改动
  • git merge 合并一条分支到你当前的分支
  • git diff 合并前预览差异

替换本地改动

git checkout -- 此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件

  • git fetch origin
  • git reset --hard origin/master 丢弃你在本地的所有改动与提交,以到服务器上获取最新的版本历史,并将你本地主分支指向它

标签

  • git tag 1.0.0 1b2e1d63ff 创建一个叫做 1.0.0 的标签 1b2e1d63ff 是你想要标记的提交 ID 的前 10 位字符。可以使用下列命令获取提交 ID
  • git log 你也可以使用少一点的提交 ID 前几位,只要它的指向具有唯一性。

log

  • git log 了解本地仓库的历史记录
  • git log --author=bob 只看某一个人的提交记录
  • git log --pretty=oneline 一个压缩后的每一条提交记录只占一行的输出 git log --graph --oneline --decorate --all 艺术的树形结构来展示所有的分支

实际运用

  • 工作区:你操作的代码
  • 暂存区:git add 添加入暂存区
  • 本地仓库:当你把某个功能做好之后 可以git commit
  • 远程仓库:做本地仓库的同步

场景一:你觉得这次提交的commit不行,需要做回退到上次提交的commit做重新来

回退到上个commit

        
  • 1
git reset --hard HEAD^

回退到上上个commit

        
  • 1
git reset --hard HEAD^^

回退到上100个commit

        
  • 1
git reset --hard HEAD~100

回退到指定版本,通过git log 查看commitid --pretty=oneline 可以显示成简略版

        
  • 1
git log --pretty=oneline
        
  • 1
git reset --hard e475afc93c209a690c39c13a46716e8fa000c366

此时回退到以前版本git log会看不到后来的版本 可以通过git reflog 看到操作纪路来找到操作过的commitid

        
  • 1
git reflog

场景二:撤销修改。

你修改了README.md的文件 此时想撤销修改回到上次的commit的状态 git checkout -- file

        
  • 1
git checkout -- README.md

你修改了README.md的文件 并将其存到了暂存区,此时想撤销修改回到上次的commit的状态 git reset HEAD 可以把暂存区的修改撤销掉(unstage)

        
  • 1
git reset HEAD README.md

你不小心删除了README.md文件

        
  • 1
git checkout -- README.md

总之,git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

场景三:多人协作。

多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin 推送自己的修改;

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

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

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

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

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

小伙伴入职:

        
  • 1
git clone

小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支

        
  • 1
git checkout -b dev origin/dev

还有许多命令可查看 https://github.com/521xueweihan/git-tips

另外推荐使用SourceeTree https://www.sourcetreeapp.com/ 可视化工具管理

Article at   2020/06/23 17:19  Published  code  Category,viewed  166  times

Relevant tags:    Github    工作 

Address:   https://www.kedong.me/article/20

Copyright Notice: Freely reproduced for non-commercial use