git使用笔记

git状态说明

A: 你本地新增的文件(服务器上没有).

C: 文件的一个新拷贝.

D: 你本地删除的文件(服务器上还在).

M: 文件的内容或者mode被修改了.

R: 文件名被修改了。

T: 文件的类型被修改了。

U: 文件没有被合并(你需要完成合并才能进行提交)。

X: 未知状态(很可能是遇到git的bug了,你可以向git提交bug report)。

在man git diff-files中可以查到这些标志的说明。

这些状态标志在git的源代码的diff.h文件中被定义。

git 放弃本地某个文件的修改,或所有修改

git checkout 文件名
git checkout // 放弃所有文件的所有修改
git reset --hard 版本号 // 返回到某个版本,放弃所有修改,–hard 本地也没有了!慎用!

git远程分支覆盖本地分支

有时候同一个分支,远程的和本地的都被修改的面目全非了,如果想要把本地的替换成远程的,用下面的命令

git fetch --all
git reset --hard origin/master (这里master要修改为对应的分支名)
git pull

git本地分支覆盖远程分支

git push origin branchname -f
会覆盖远程分支上的内容

git撤销commit但未push的记录

原文:https://blog.csdn.net/qq_383698639/article/details/91814288
Tips: 不要慌、作为开发工程师、一切都不要慌

1、git log 查看当前分支的历史记录
2、找到你想恢复到的ID,然后 git rest ID ------> 注意:不要加上 --hard !!! 不信你可以试试
3、git log查看发现没有了commit记录,git status也很高兴可以看到你的修改记录了
4、这样就恢复到了提交之前的状态,接下来就按个人意愿操作就好了


将当前分支的修改同步到另一个分支

假设: 我当前修改的分支是 master , 我需要将修改的文件同步到 dev 分支
1、现在的状态是已经修改完文件了
2、下面开始将修改的文件同步到另外一个分支
3、在 master 分支使用 [ git add . ] ,当然也可以只添加自己想要的文件
4、然后在 master 分支使用 git stash ,将修改的文件提交到缓冲区中
5、git checkout dev ,将分支切换到dev
6、使用 git stash pop , 将缓冲区中的文件弹出
7、完成

从远程仓库拉取最新代码合并到本地分支

转载:https://blog.csdn.net/weixin_44380128/article/details/87695222

1.git pull:获取最新代码到本地,并自动合并到当前分支
命令展示

//查询当前远程分支
$ git remote -v
//直接拉取并合并最新代码
$ git pull origin master [示例1:拉取远端origin/master分支合并到本地当前分支]
$ git pull origin dev [示例2:拉取远端origin/dev分支合并到本地当前分支]
分析:不推荐这种方式,因为是直接合并的,无法提前处理冲突。

2.git fetch + merge: 获取最新代码到本地,然后手动合并分支

2.1.额外建立本地分支

代码展示

//查看当前远程的版本
$ git remote -v
//获取最新代码到本地临时分支(本地当前分支为[branch],获取的远端的分支为[origin/branch])
$ git fetch origin master:master1  [示例1:在本地建立master1分支,并下载远端的origin/master分支到master1分支中]
$ git fetch origin dev:dev1[示例1:在本地建立dev1分支,并下载远端的origin/dev分支到dev1分支中]
//查看版本差异
$ git diff master1 [示例1:查看本地master1分支与当前分支的版本差异]
$ git diff dev1    [示例2:查看本地dev1分支与当前分支的版本差异]
//合并最新分支到本地分支
$ git merge master1    [示例1:合并本地分支master1到当前分支]
$ git merge dev1   [示例2:合并本地分支dev1到当前分支]
//删除本地临时分支
$ git branch -D master1    [示例1:删除本地分支master1]
$ git branch -D dev1 [示例1:删除本地分支dev1]

分析:不推荐这种方式,还需建立额外的分支

2.2.不额外建立本地分支

代码展示

//查询当前远程的版本
$ git remote -v
//获取最新代码到本地(本地当前分支为[branch],获取的远端的分支为[origin/branch])
$ git fetch origin master  [示例1:获取远端的origin/master分支]
$ git fetch origin dev [示例2:获取远端的origin/dev分支]
//查看版本差异
$ git log -p master..origin/master [示例1:查看本地master与远端origin/master的版本差异]
$ git log -p dev..origin/dev   [示例2:查看本地dev与远端origin/dev的版本差异]
//合并最新代码到本地分支
$ git merge origin/master  [示例1:合并远端分支origin/master到当前分支]
$ git merge origin/dev [示例2:合并远端分支origin/dev到当前分支]

备注:推荐这种方式

git查看本地分支与远程分支的区别

比较本地分支
git diff branchA branchB

比较远程分支
git diff localbranch(可不写) 远程仓库名/远程分支名
例如git diff origin/develop-xiaobai

git基本操作

https://blog.csdn.net/flower_CSDN/article/details/80787724

切换分支
git checkout SpringHibernate
查看当前分支
git branch
将本上的内容上传到github对应库的SpringHibernate分支上
git push origin SpringHibernate

git add myfile
文件放入暂存区
add之后想要放弃,撤销使用:git checkout – myfile
(但是本地本次add的文件修改的内容也会消失)

git commit -m ‘文件说明’

将本地仓库中的文件提交到远程库中
git push origin newbranch

强制性提交git push origin branchname -f
会覆盖远程分支上的内容,如果你确定远程分支上的内容没用的话。

git将本地工程上传到远程库

查看本地库关联到的远程库
git remote -v
git 删除被管理的文件

#不会删除本地文件
git rm —-cached filePath
git 删除被管理的文件夹

git rm -r -f —-cached filePath

在本地目录下关联远程repository :

git remote add origin git@github.com:git_username/repository_name.git

取消本地目录下关联的远程库:

git remote remove origin

步骤:

  1. git init //初始化仓库

  2. git add .(文件name) //添加文件到本地仓库

  3. git commit -m “first commit” //添加文件描述信息

  4. git remote add origin + 远程仓库地址 //链接远程仓库,创建主分支

  5. git pull origin master // 把本地仓库的变化连接到远程仓库主分支

  6. git push -u origin master //把本地仓库的文件推送到远程仓库

(ps:上面的步骤我试了几次都不行,然后还是先clone到本地了,如下:)
在你提交代码的workspace中git init 一个git版本库,然后每次提交代码这样做:
1, github上创建一个本地库,yourRepository
2,克隆到本地
git clone -b develop-wa ssh://git@gitlab.flll.com:502/iot/iot-demo.git
(2,
如果想将本地的文件夹直接作为库和远程库进行关联就使用
git remote add origin https://github.com/yourGithub/yourRepository
)
3,创建并切换分支
git checkout -b newbranch
如果想要删除分支oldbranch使用git branch -d oldbranch
想要删除当前正在使用的分支使用git branch -D newbranch
4,添加我要上传到本地库的文件(将文件添加到暂存区)
git add myfile
add之后想要放弃,撤销使用:git checkout – myfile
5,将刚才add的文件提交到当前分支上
git commit -m ‘文件说明’
如果提交之后想要删除可以在对应目录直接删除文件也可以使用命令:rm myfile
如果又想要恢复删除的文件可以使用git checkout – myfile
6,将本地仓库中的文件提交到远程库中
git push origin newbranch

强制性提交git push origin branchname -f
会覆盖远程分支上的内容,如果你确定远程分支上的内容没用的话。

git 取消合并

转载:https://blog.csdn.net/u011884440/article/details/71246562
取消某次合并

git merge --abort #如果Git版本 >= 1.7.4
git reset --merge #如果Git版本 >= 1.6.1

Note: 在合并之前要保证没有未提交的文件,如果有未提交的文件但现在又不想提交,用stash命令暂存。

暂存命令stash使用

git stash #将本地修改暂时存储起来
git stash list #查看暂存的信息
git stash pop  #应用最近一次暂存的内容
git stash apply stash@{1} #应用指定版本的暂存内容
git stash clear  #清空暂存栈

回退到某个版本并应用指定的几次提交

git reset --hard 1d7444 #回退到某个版本
git cherry-pick 626335 #将某次commit的更改应用到当前版本
git cherry-pick …
git push origin HEAD --force  #强制提交

Note:如果是撤销某次提交,可以用revert命令,git revert是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留; git reset是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区

git 版本回退

例如分支合并错误,想回退到之前的版本
比如feature-a应该合到develop,但是方向合并错了,把develop合到了feature-a
(这种错误估计也就我会犯了)
先切到feature-a,然后找到合并前上个版本的commitId
然后
1、本地回滚

git reset --hard 7d72d974a9ed718dc1f50194879d4409a9f5db4b

2、将本地回滚推到远程分支,改变远程分支代码,使其保持和本地一致

git push -f origin feature-a

IDEA 中的update project

在这里插入图片描述
git update
Update Type
(1)、merge :就是git的合并代码。远程代码在你push之前已经被修改了。就需要先merge。如果没有冲突,就自动合并修改,否则需要逐一合并;
(2)、rebase:拉下来的代码有冲突,但是不会自动合并。需要你手动合并;
(3)、branch default不清楚
Clean working tree before update
(1)、using stash:在更新前先清除stash
————————————————
版权声明:本文为CSDN博主「alwaysonline819」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39198749/article/details/102929779

posted @ 2019-07-16 12:11  快乐的内啡肽呀  阅读(45)  评论(0)    收藏  举报