git常用命令

(1)本地分支管理

1.初始化本地git仓库

$git init

2.拉取远程代码

$git clone ssh_address

如果已经建立了本地分支和远程分支的管理,可以直接执行

$git pull 该命令相当于git fetch + git merge获取远程最新修改并合并,但不会删除本地的基于之前base的提交,本地修改也会和最新的修改合并,但是基于以前base的修改依然存在,假设某一天回退到该版本,那么就会舍弃其他人的修改。

$git pull --rebase 而rebase则是将之前的本地commit废除,将该commit合并到最新的commit上,这样所有的commit都是沿着一条主线下来。

pull之后通常需要将本地commit提交到远程分支

将本地的commit提交到远程分支的命令如下

$git push origin master

origin为远程主机名, master为与本地分支对应的远程分支名

如果远程分支与本地分支已经建立了联系,那么可以直接使用下面指令

$git push origin

如果只有一个远程分支,那么可以省略主机名,直接使用

$git push

如果是本地分支对应的远程分支不是master,而是一个其他的独立分支,和本地相对应,那么提交方法为

$git push origin localbranch:remotebranch

3.查看本地的分支

$git branch

4.切换分支

$git checkout branch_name(假设该分支已经存在)

5.创建本地分支

$git checkout -b branch_name创建并切换到该分支,相当于$git branch branch_name $git checkout branch_name

该分支是基于当前的master分支(即主分支)

6.重命名本地分支

$git branch -m old_name new_name

7.删除本地分支

$git branch -D branch_name

8.查看缓存区状态

$git status

9.查看修改记录

$git log

按关键字检索提交的log记录

$git log --grep 关键字

按照关键字和作者检索log

$git log --grep 关键字 --author 作者

10.彻底回退到之前的某个版本

$git reset --hard commit_id

11.合并某几条提交

假设有commit_id_0; commit_id_1; commit_id_2; commit_id_last

a.合并后面两条的方法

$git reset --soft commit_id_1

$git status

$git add .

$git commit -m ""

git reset --soft意思是从该commit之后的所有修改都恢复为暂存状态,可以把他们一起commit为一条。

b.如果是想合并中间的某几条commit,那么就使用git rebase命令

首先用git log命令找到合并之前的那个commit id,然后执行

$git rebase -i commit_id

接下来会弹出一个修改窗,前面几行是这样的

pick id_1 

pick id_2

pick id_3

将需要合并的commit的pick改为squash或者s,保存退出。

12.将创建的本地分支合并到master分支

$git merge local_branch_name

(2)远程分支的操作

1.查看远程分支

$git branch -r

2.查看所有分支

$git branch -a

查看所有分支的状态

$git branch -av

3.创建与远程分支对应的本地分支

$git checkout -b localBranch origin/remoteBranch

创建本地分支localBranch,它与远程分支remoteBranch对应,origin为远程主机名。

4.将本地分支推送到远端

$git push origin localBranch

5.查看远程分支log

$git log origin/remoteBranch

origin为远端host名字

6.删除远程分支

git push origin --delete remot_name

7.重命名远程分支

a.删除远程分支

b.重命名本地分支$git branch -m oldName newName

c.推送本地分支

$git push hostName localName

(3)git补丁的生成与应用

通常,一个commit对应一个patch文件。

1.生成patch的命令

为某条commit生成patch

$git format-patch commit_id -1

为某两条commit之间的修改生成patch

$git format-patch commit_id1 commit_id2 (包括起始的两条commit)

为某条commit之后的n条提交生成patch(包含该commit)

$git format-patch -n

2.应用patch

$git am modify.patch应用某个补丁文件

$git am *.patch应用所有补丁文件

$git am --reject modify.patch强制打补丁

(4)如果不小心 删除了某条commit,那么可以用reflog来恢复

$git reflog

(5)如果想把当前的修改不commit的情况下与最新代码合并,可以使用git stash命令

具体步骤是这样的:

a. git stash将最新的修改保存到暂存区

b. git pull --rebase 拉取远程服务器的最新代码

c. git stash pop 将暂存区的修改应用到当前最新代码

(6)如果本地基于master创建了一个分支,并且把这个分支推送到了远端,此分支很久没有和master分支进行同步,那么该如何把master的最新修改合并到这个分支呢,具体步骤如下:

首先切到master分支,git checkout master

然后拉取master的最新代码, git pull --rebase

再切换到另外的本地分支 git checkout localbranch

合并master的最新修改git merge master

解决冲突,接着git add , git commit

将本地修改推送到远端git push origin [localbranch]:[remotebranch]

(7)修改已经提交到服务器的commit

如果要修改最近的一次commit,可以这样

git commit --amend修改

git fetch

git push origin branch_name --force

如果想更新修改,那么可以这样

1.git commit --amend   保存修改

2.git push -f 主机名 HEAD:refs/for/远程分支名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值