GIT常规使用命令

git常用命令:

一.检出仓库

执行如下命令以创建一个本地仓库的克隆版本:

git clone /path/to/repository

如果是远端服务器上的仓库,你的命令会是这个样子:

git clone username@host:/path/to/repository

git pull拉取当前分支代码

将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。

git pull origin master:brantest

如果远程分支是与当前分支合并,则冒号后面的部分可以省略。

git pull origin master

二、查看远程分支的方法

要查看远程分支,需要使用Git命令行。以下是常用的查看远程分支的方法。

1、查看远程分支列表

使用以下命令可以查看远程分支列表。

git branch -r

如果需要查看本地和远程分支,可以使用以下命令。

git branch -a

2、查看远程分支的详细信息

使用以下命令可以查看远程分支的详细信息。

git remote show origin

其中,origin是Git默认的远程仓库名称。如果需要查看其他远程仓库的分支信息,则需要将origin替换为对应的远程仓库名称。

3、查看本地分支对应的远程分支

git branch -vv

查看某个特定本地分支对应的远程分支

git branch -vv | grep <本地分支名>

4、获取远程分支的代码

要查看远程分支的代码,需要先将远程分支代码同步到本地。使用以下命令将远程分支同步到本地分支。

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

其中,<本地分支>是要创建的本地分支名,<远程分支>是要同步的远程分支名。

同步完后,要查看本地分支的代码,可以使用以下命令。

git checkout <本地分支>

5.查看最近分支代码提交

这个命令会列出所有本地分支的最近提交,并按提交日期排序:

git for-each-ref --sort=-committerdate refs/heads/ --format="%(committerdate:short) %(refname:short) [%(committername)]"

这将列出所有远程跟踪分支的最新提交,并按提交日期排序。请注意,这可能包括很多分支,并且输出会比较长:

git for-each-ref --sort=-committerdate refs/remotes/ --format="%(committerdate:short) %(refname:short) [%(committername)]"

三、添加与提交

你可以计划改动(把它们添加到缓存区),使用如下命令:

git add <filename>

git add *

这是 git 基本工作流程的第一步;使用如下命令以实际提交改动:

git commit -m "代码提交信息"

现在,你的改动已经提交到了 HEAD,但是还没到你的远端仓库。

四、git push(推送改动)

你的改动现在已经在本地仓库的 HEAD 中了。执行如下命令以将这些改动提交到远端仓库:

git push origin master

可以把 master 换成你想要推送的任何分支。

如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器,你可以使用如下命令添加:

git remote add origin <server>

如此你就能够将你的改动推送到所添加的服务器上去了。

五、git checkout(替换本地改动)

假如你做错事(自然,这是不可能的),你可以使用如下命令替换掉本地改动:

git checkout -- <filename>

此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到缓存区的改动,以及新文件,都不受影响。

从远程分支origin/branch,创建newbranch本地分支

git checkout -b newbranch origin/branch

六、.冲突解决

方法一:

git pull 出现冲突后丢弃本地冲突文件修改,采用远程文件覆盖本地文件

git checkout  [文件路径]

例:git checkout test/src/xxxxxx.cpp 

方法二:

git pull 出现冲突后可以暂存本地修改git stash ,然后git pull 更新代码,git stash list 可查看暂存记录列表,释放本地暂存 git stash apply stash@{0} ,出现冲突文件,找到并解决,然后可以提交git add . 加入索引库,然后本地提交git commit -m '注释' 最后git push到远程

方法三:

1、git pull(更新代码,发现)

error: Your local changes to the following files would be overwritten by merge:xxxxxx.cpp

Please commit your changes or stash them before you merge.

这说明你的xxxxxx.cpp与远程有冲突,你需要先提交本地的修改然后更新。

2、git add xxxxxx.cpp

git commit -m '冲突解决

提交本地的xxxxxx.cpp文件,不进行推送远程

3、git pull(更新代码)

Auto-merging xxxxxx.cpp

CONFLICT (content): Merge conflict in xxxxxx.cpp

Automatic merge failed; fix conflicts and then commit the result.

更新后你的本地分支上会出现 (develop|MERGING)类似这种标志

4、找到你本地的xxxxxx.cpp文件,并打开

你会在文件中发现<<<<<<< HEAD ,=======  ,>>>>>>> 418ecd9f9db1b2594dd788131599cabf49cd6723

这种标记,<<<<<<< HEAD和=======中间的是你自己的代码,  =======  和>>>>>>>中间的是其他人修改的代码

自己确定保留那一部分代码,最后删除<<<<<<< HEAD ,=======  ,>>>>>>>这种标志

5、git add xxx.cpp

git commit -m '冲突解决结束'

再次将本地的xxxxxx.cpp文件提交

6、git push

将解决冲突后的文件推送到远程

七、创建新分支

创建分支

git branch <branch>

切换到新分支

git checkout <branch>

创建并切换到新分支(上面两个命令合集)

git checkout -b <branch>

基于远程分支创建分支

git checkout -b <new-branch> origin/<old-branch>

例如:git checkout -b dev origin/liang

八、git log(查看用户提交日志)

查看用户提交日志:git log --author=[username]

九、.git diff(对比版本差异)

对面两个版本(详情)git diff  418ecd9f9db1b2594dd788131599cabf49cd6723 5b4aa61f3330c10151d59d4ac50180b781ad8ae1

对面两个版本(概要)git diff  —stat 418ecd9f9db1b2594dd788131599cabf49cd6723 5b4aa61f3330c10151d59d4ac50180b781ad8ae1

十、git commit之后,想撤销commit

写完代码后,我们一般这样

git add . //添加所有文件

git commit -m "本功能全部完成"

执行完commit后,想撤回commit,怎么办? 

git reset 命令用于回退版本,可以指定退回某一次提交的版本。

git reset 命令语法格式如下:

git reset [--soft | --mixed | --hard] [HEAD]

1、—mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交保持一致,工作区文件内容保持不变(撤销add)。

git reset [HEAD]

实例:

$ git reset HEAD^ # 回退所有内容到上一个版本

$ git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本

$ git reset 052e # 回退到指定版本

常用文件撤销:

git status 先看一下add 中的文件 

git reset HEAD 如果后面什么都不跟的话 就是上一次add操作全部撤销了 

git reset HEAD xxx/xxx/xxx.cpp 就是对某个文件进行撤销了

2、--soft 参数用于回退到某个版本

git reset --soft HEAD^ (回退到上一个版本,撤销commit,不撤销add):

实例:

$ git reset --soft HEAD~3 # 回退上上上一个版本

3、--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:

(删除工作空间的改动代码,撤销commit且撤销add)

git reset --hard HEAD

实例:

$ git reset --hard HEAD~3 # 回退上上上一个版本

$ git reset –hard bae128 # 回退到某个版本回退点之前的所有信息。

$ git reset --hard origin/master # 将本地的状态回退到和远程的一样

注意:谨慎使用 –-hard 参数,它会删除回退点之前的所有信息。

如果commit注释写错了,只是想改一下注释,只需要:

git commit --amend

此时会进入默认vim编辑器,修改注释完毕后保存就好了。

十一、git merge(分支合并)

1、git merge dev

是将dev的分支合并到当前分支,应该默认是fast forward模式

2、git merge dev --squash

是用来把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用--squash进行合并,此时文件已经同合并后一样了,但不移动HEAD,不提交。需要进行一次额外的commit,然后完成最终的合并。

十二、 删除本地分支

git branch -d 分支号

git branch -D 分支号(强制删除)

十三、 格式化日志输出

git log --pretty=format:"%an:%ar:%s"

十四、撤回push

git revert 命令撤回已 push 的代码的步骤:

首先,确认你当前所在的分支。你可以使用 git branch 命令来查看当前分支,例如:

git branch

如果你想撤回最近一次的 push,可以使用 git revert 命令。它会创建一个新的提交来撤销之前的提交。使用以下命令:

git revert HEAD

如果你想要撤回多个提交,可以指定这些提交的 commit ID,例如:

git revert <commit-id1> <commit-id2> ...

执行 git revert 命令后,会弹出编辑器以供你编写提交信息。保存并关闭编辑器后,Git 会创建一个新的撤销提交。

最后,将撤销提交 push 到远程仓库:

git push origin <branch-name>

将 <branch-name> 替换为你要 push 的分支名称。

请注意,git revert 操作不会删除之前的提交记录,而是创建新的提交来撤销之前的更改。这样做的好处是保留了历史记录,同时也避免了对他人协作的干扰。

十五、要查看指定用户的commit记录,可以使用以下Git命令

查看所有commit记录

git  log

git  log --author="你的用户名"

查看指定文件commit记录

git  log --author="你的用户名" -- <file_path>

查看更详细commit记录,比如每个commit的改动内容

git  log --author="你的用户名" -p

查看最近几次commit记录

git  log --author="你的用户名" -n 5

十五、git cherry-pick 命令的作用

git cherry-pick 命令的作用,就是将指定的提交(commit)应用于其他分支。

$ git cherry-pick <commitHash>

 

$ git cherry-pick feature

上面代码表示将 feature 分支的最近一次提交,转移到当前分支。

 

Cherry pick 支持一次转移多个提交。

$ git cherry-pick <HashA> <HashB>

上面的命令将 A 和 B 两个提交应用到当前分支。这会在当前分支生成两个对应的新提交。如果想要转移一系列的连续提交,可以使用下面的简便语法。

 

$ git cherry-pick A..B

上面的命令可以转移从 A 到 B 的所有提交。它们必须按照正确的顺序放置:提交 A 必须早于提交 B,否则命令将失败,但不会报错。注意,使用上面的命令,提交 A 将不会包含在 Cherry pick 中。

如果要包含提交 A,可以使用下面的语法。

$ git cherry-pick A^..B

如果操作过程中发生代码冲突,Cherry pick 会停下来,让用户决定如何继续操作。

(1) --continue

用户解决代码冲突后,第一步将修改的文件重新加入暂存区( git add . ),第二步使用下面的命令,让 Cherry pick 过程继续执行。

$ git cherry-pick --continue

(2) --abort

发生代码冲突后,放弃合并,回到操作前的样子。

(3) --quit

发生代码冲突后,退出 Cherry pick,但是不回到操作前的样子。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值