前言

git常用操作参考:https://www.yiibai.com/git/gi...

https://www.cnblogs.com/kuyue...

https://www.cnblogs.com/taosi...

内容

1.git fetch

1.1 git fetch origin

$ git fetch <远程主机名>
  • 上面命令将某个远程主机的更新,全部取回本地;
  • git fetch命令通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响;

1.2 git fetch <远程主机名> <分支名>

$ git fetch <远程主机名> <分支名>
  • 上面命令取回特定分支的更新;
  • 例如:取回origin主机的master分支,如下:
$ git fetch origin master

取回的更新,在本地主机上要用"远程主机名/分支名"的形式读取。比如origin主机的master,就要用origin/master读取;

1.3 直接使用 git fetch 命令

git fetch

  • 创建并更新本地远程分支。即创建并更新origin/xxx 分支,拉取代码到origin/xxx分支上;
  • 在FETCH_HEAD中设定当前分支-origin/当前分支对应,如直接到时候git merge就可以将origin/abc合并到abc分支上;

git fetch origin

  • 手动指定了要fetch的remote。在不指定分支时通常默认为master;
    image.png
    git fetch origin dev
    指定远程remote和FETCH\_HEAD,并且只拉取该分支的提交;

1.4 对比git pull

与git pull相比git fetch相当于是从远程获取最新版本到本地,但不会自动merge。如果需要有选择的合并git fetch是更好的选择。效果相同时git pull将更为快捷;

2.git checkout

  1. git checkout 命令用于切换分支或恢复工作树文件

    2.1 恢复工作树

    有时候我们写的代码写错分支了,我们想要恢复到上一次版本,使用:

git checkout --.

2.2 本地切换到指定分支

查看分支,并切换到本地分支:feature/A
image.png

2.3 关联本地分支

git checkout -b 本地分支   origin/远程分支  

image.png

通过git branch可以看到本地多了一个develop分支

2.4 从某一个commit开始创建本地分支

1、git log 查看提交
2、// 通过checkout 跟上commitId 即可创建制定commit之前的本地分支 

git checkout commitId -b 本地新branchName

image.png

上传到远程服务器 
// 依然通过push 跟上你希望的远程新分支名字即可 
git push origin HEAD:远程新branchName

3.git branch<分支操作>

3.1 查看本地分支

$ git branch

image.png

3.2 删除本地分支与远程分支同步

  1. 远程删除分支:我们删除gitlab上的分支feature/A,之前我们同步到本地的分支feature/A也需要删除。
    image.png
  2. 本地查看分支并同步删除分支
    image.png
  3. 提示你可以通过git remote prune 移除这个分支。(也就是说你可以刷新本地仓库与远程仓库的保持这些改动的同步)
    image.png
  4. 查看远程分支
    image.png
$ git branch -r

4.git stash<暂存>

4.1 分支暂存和恢复

stash命令可用于临时保存和回复修改,可跨分支
git stash暂存分支:一般如下配置使用
1.先暂存分支
git stash
2.分支切回来后,查看下暂存区
git stash list
3.把之前暂存内容应用回来
git stash apply

4.2 实例

1.分支暂存
image.png
2.分支恢复
image.png

5.git reset<回退>

5.1 方式1

通过使用Git版本恢复命令reset,可以回退版本。reset命令有3种方式:

  1. git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
  2. git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
  3. git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

    以下是一些reset的示例:

1 git reset HEAD^  #回退所有内容到上一个版本     
2 git reset HEAD^  a.py #回退a.py这个文件的版本到上一个版本     
3 git reset –soft  HEAD~3 #向前回退到第3个版本      
4 git reset –hard  origin/master #将本地的状态回退到和远程的一样
5 git reset 057d  #回退到某个版本      
6 git revert HEAD #回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit

5.1 方式2

在当前branch上多次commit代码并且push后,发现不符合要求,需要回滚到特定的版本。步骤如下:

1、查找commitId
首先用命令行打开git项目路径,输入git log命令查看commit记录,如下:

git log

找到commitId是9a0d02d1578ea064479296ad7efa70c5cb1a3717记录,这是执行上面命令后打印出来的信息:

2、找到需要回滚的commit,输入git reset --hard {commitId},将本地文件回滚:

git reset --hard c503cffa099332911d4fce2fc1399cb4bc3ba9d6

3、此时本地文件已经回滚到刚刚commit 9a0d02d1578ea064479296ad7efa70c5cb1a3717之后的状态,但是服务器仍然没有改变,需要继续远程回滚:

git push -f

6.代码迁移-提交历史记录

重设远程仓库地址
git remote set-url origin git@new_repository.git
查看当前远程仓库地址
git remote -v
推送代码以、提交记录、标签到新仓库,并指定origin(新仓库)为默认主机
--all: 推送所有分支
--tags: 推送所有本地新增的标签;默认情况下,git push并不会把标签传送到远端服务器上
git push -u origin --all
git push -u origin --tags

7.git永久记住密码

初使用git时,每次push或clone代码都需要输入一遍账号密码,操作非常繁琐,且这一步为想要Jenkins自动编译的童鞋们挖了个大坑。
首先找到本地gitconfig文件;

[credential]
    helper = store

8.修改提交者

image.png


startshineye
91 声望26 粉丝

我在规定的时间内,做到了我计划的事情;我自己也变得自信了,对于外界的人跟困难也更加从容了,我已经很强大了。可是如果我在规定时间内,我只有3分钟热度,哎,我不行,我就放弃了,那么这个就是我自己的问题,因为你自己...