美文网首页php
git常用命令

git常用命令

作者: Fizz_YF | 来源:发表于2020-06-09 21:06 被阅读0次

设置user的name和email

设置name: $ git config --global user.name "xxx"

设置email:git config --global user.email "email@gmail.com"



===============================常用操作_start===============================

常用操作

提交

git add .

提交

git commit -m '备注'

推送本地分支到某一远程分支,也可以直接git push,则为推送和当前本地分支同名的远程分支

git push origin 本地分支:远程分支

删除本地分支

git branch -d 本地分支名

删除远程分支名

git push origin --delete 远程分支名
git push origin :远程分支名 #删除远程分支名(这个方法是推送一个空分支到远程分支,从而删除)

重命名:

重命名本地分支

git branch -m 原本地分支名 重命名后的本地分支名

重命名远程分支。

在git中重命名远程分支,其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支。

gitignore无效的情况

问题

在.gitignore文件中添加某文件,想对其进行忽略,但是通过git status查看仍然显示该文件的状态。

原因

在git库中已经存在该文件(以前push过),而.gitignore仅对还没有加入到版本管理的的文件起作用

解决办法:

在git库中删除该文件(或者先移到项目目录外),并提交

拉取远程分支

git fetch origin branchname:branchname(不会切换到新分支)
可以把远程某各分支拉去到本地的branchname下,如果没有branchname,则会在本地新建branchname

把要合并的本地分支合并到当前分支

git merge 要合并过来的本地分支

修改远程地址

  • 方法一:直接修改

git remote set-url origin 新远程仓库地址

  • 方法二:先删除,后添加

git remote rm origin#删除远程分支
git remote add origin 新远程仓库地址#重新添加远程分支

创建并切换分支

git checkout -b 分支名

查看两个提交之间修改过的文件

git diff --name-only <commitId-1> <commitId-2>注意:commitId 为前八位

本地测试git

  1. 新建一个目录,然后执行git init,然后再执行pwd,复制路径url
  2. 新建另一个目录,然后执行,用上面a步骤的url,执行git clone url(若是项目在其他的服务器,则git clone 用户名(能打通ssh的用户)@ip(内网ip):/url)
  3. 若b的目录需要push,则a目录的分支不能停在master,不然push不上去,需要切换到另外的分支。

===============================常用操作_end===============================


===============================远程仓库_start===============================

远程仓库

注:

  1. 本地和远程第一次操作时需要关连:加上-u参数。
  2. git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
    git push -u 远程仓库分支 本地仓库分支:
    eg:$ git push -u origin master
  3. 切换关联的远程分支
    $git branch --set-upstream-to=origin/remote_branch your_branch #remote_branch是远程分支名 your_branch是本地分支名
    eg:git branch --set-upstream-to=origin/story_v540 story_550
1.先有本地仓库,然后关联远程仓库

要关联一个远程库,使用命令$ git remote add origin git@server-name:path/repo-name.git

关联后,使用命令$ git push -u origin master第一次推送master分支的所有内容

此后,每次本地提交后,只要有必要,就可以使用命令$ git push origin master推送最新修改

2.先有远程仓库,关联本地仓库

$ git clone git@server-name:path/repo-name.git

===============================远程仓库_end===============================


===============================多人合作_start===============================

多人协作

查看远程库的信息

git remote
git remote -v #显示更详细的信息

流程

1.先pull到本地
2.合并,如果合并有冲突,则解决冲突,并在本地提交commit
3.后push到服务器

注意:如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name
===============================多人合作_end===============================



===============================stash_start===============================

stash

前提:必须是处于git下的文件,未add到git的文件无法使用

保存当前工作进度,将工作区和暂存区恢复到修改之前。

git stash

作用同上,message为此次进度保存的说明。

git stash save message

显示保存的工作进度列表,编号越小代表保存进度的时间越近。

git stash list

显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}。

git stash show

恢复工作进度到工作区(不会删点原来的stash@{num}),此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度

git stash apply stash@{num}

恢复工作进度到工作区(会删点原来的stash@{num}),此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度

git stash pop stash@{num}

删除一条保存的工作进度,此命令的stash@{num}是可选项,在多个工作进度中可以选择删除,不带此项则默认删除最近的一次进度相当于git stash drop stash@{0}

git stash drop stash@{num}

删除所有缓存的stash

git stash clear

从最新的stash创建分支。

场景:当储藏了部分工作,暂时不去理会,继续在当前分支进行开发,后续想将stash中的内容恢复到当前工作目录时,如果是针对同一个文件的修改(即便不是同行数据),那么可能会发生冲突,恢复失败,这里通过创建新的分支来解决。可以用于解决stash中的内容和当前目录的内容发生冲突的情景。
命令:git stash branch

删除所有保存的工作进度。
===============================stash_end===============================



===============================回滚_start===============================
【本地回滚】

  • 未执行git add

git checkout file`#file是要恢复的文件名。注意:这是恢复到未修改前

  • 已经执行git add

git reset HEAD file#file是要恢复的文件名。注意:这是恢复到未add前

  • 已经commit

git reset HEAD^ file#file是要恢复的文件名。注意:这是恢复到未add前

  • 全部回退,已commit
  • git reset --hard HEAD^ #退回上个版本
  • git reset --hard HEAD^^ #退上上一版本
  • git reset --hard HEAD~20 #退前第20个版本

【远程回滚】:

这个是重点要说的内容,过程比本地回滚要复杂
原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支

提示:最好先把远程分支先备份再删除,重新push没问题后再删除

===============================恢复文件_end===============================

相关文章

网友评论

    本文标题:git常用命令

    本文链接:https://www.haomeiwen.com/subject/oczwzhtx.html