git常用命令及应用场景

大行至简,上行若水

目录

基于远端分支创建本地分支

切换分支/新建并切换分支

删除本地分支

git commit 和 git push 的区别

新项目首次拉取代码并导入到IDE

上传新项目(文件夹/文件)到gitlab

对已有项目的代码进行更新

将远端A分支的某次提交合并到远端B分支

关于git push

代码撤销/丢弃

对分支的理解


基于远端分支创建本地分支

情景:远端有develop分支,我本地要基于develop分支进行开发,而且我本地新建的分支名需要命名为dev,操作如下:

git branch dev origin/develop

即本地将新建一个名为dev的分支,这个分支的代码与远端develop代码相同。只创建而不切换时可以用该命令,创建并自动切换时用git checkout -b,下面有举例。

切换分支/新建并切换分支

切换到dev2分支(dev2已存在):

git checkout dev2

当前位于dev分支,我想再基于develop分支新建一个名为dev2的本地分支,新建后自动切换到dev2:

git checkout -b dev2

注意:因为你要基于develop分支来创建,所以先要切换到develop再执行以上命令

删除本地分支

git branch -D 分支名

git commit 和 git push 的区别

git commit操作目标的是本地库,git push操作目标的是远程库。
git commit是将本地修改过的文件提交到本地库中。
git push是将本地库中的最新变动信息更新到远程库。

新项目首次拉取代码并导入到IDE

项目名为bizsvc

方式1使用命令拉取代码,在IDE中直接导入

1,本地任意指定目录下新建目录:\t2d.net\ibis\,用于给ibis下放置代码

2,执行git checkout -b develop http://172.16.99.4:10080/ibis/bizsvc.git

也可以不指定分支,直接git clone XXX.git(IDE导入后自动切为develop分支)

3,进入bizsvc目录下执行git branch查看分支,显示develop。

4,打开IDE,选择open project,选择到bizsvc目录,导入。

方式2直接在IDE中操作导入,不使用命令

1,打开IDE,首界面是个小方框,点击check out from version Control的下三角,选git

2,输入项目路径,用户名密码

3,等待clone完成,完成后右下角自动为开发分支

上传新项目(文件夹/文件)到gitlab

进入你的项目test_comd根目录下,右键git bash here依次执行:

git init(本地工程有了但还没有仓库的时候执行)

git status

git add .

git commit -m "add new"

git status

git remote add origin https://gitlab.com/xlin/test_comd.git

git push --set-upstream origin master

因为远端还没有这个项目,master为默认主分支

对已有项目的代码进行更新

在本地新建newnew文件夹,里面再放一些文件做一些修改,依次执行:

git add .
git commit -m "你的本次提交信息"
git push

git push 后不加参数时push到远端的同名分支。

将远端A分支的某次提交合并到远端B分支

先在本地将分支切到B分支,执行

git cherry-pick commit号

关于git push

git push的作用:推送本地改动文件/代码到远端分支。

1,远程已有A分支并且已经关联到本地A分支,且本地已经切换到A分支时:

提交到本地库后直接执行 git push 即可

2,远程已有A分支但未关联本地分支A且本地已经切换到A时执行

git push -u origin/A

3,远程没有A分支,本地已经切换到A,需要push时 执行:

git push origin A:A

代码撤销/丢弃

情景1:本地修改了代码,还没有add

如果当前变蓝的这些文件改动都不要了,可直接丢弃,执行:

git checkout 文件名
或
git checkout .
或
git stash 再 git stash drop

当然,也可以直接点击IDE右上角的反方向箭头,可视化的直接选择文件进行还原操作。

情景2:本地修改了代码只执行了git add 和git commit还没有push,我不想要/需要继续修改刚才add了的变动

1,如果就是最近一次提交的修改,且现在只是基于最新的commit进行修改,那么直接在本地修改你的改动,执行

git add .
git commit --am

此时弹出修改上次提交信息的界面,视自己情况是否需要修改名称等信息,
shift+冒号,以q退出(意味着你的最新提交与上次合为一个commit,且commit名称为上次的)
如果要改commit名称,那么改动后wq再回车

2,如果就是最近一次提交的修改,且刚才的提交所有改动都不需要了,可执行

git reset head ~1

此时刚提交到本地库的改动部分会变蓝,此时你可以肆意操作了~
如果完全不要,可以git stash,再git stash drop扔掉;
如果继续修改,那就是正常提交流程;如果还想合并commit,请移步最下面。
当然,最近数量少的几次都可以这么整,不过这样的话commit号会变。

如果我想只撤掉中间的某次commit,可执行:

git reset --hard commit号

如果只涉及文件,那么指定撤销某文件在本地的改动(移出暂存区到工作区):

git reset head 文件名

每次git reset执行后有变动的文件会变蓝,这时跟上面所说的一致,需要扔掉那就扔掉,不想扔那就继续改。

情景3:已经push到了远端了,但现在某次commit不能留在代码库需要清除
可执行

git revert commit号

该命令会产生新的提交;commit号可以git log ~3(~3即最近三次的提交记录)查询,也可以在以往的gitlab页面mr记录中可视化的看到。

如果提示冲突了,可执行git revert --rebort丢弃,然后push -f
 

对分支的理解

1,当你本地没有项目时,那么分支就只在远端代码块存在,当你需要拉取该分支代码到本地时你会基于远端该分支新建本地分支。

2,同一个分支而言,分支是远端和本地一对多对应的

A和B两个人都会基于远端同一个分支在其本地创建新分支,当然A这个人也会基于远端某分支创建多个本地分支

git合并commit请移步:合并多个commit为一个commit

git 解决冲突请移步:git解决冲突

关于git的内容持续补充中...

发布了155 篇原创文章 · 获赞 74 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/HYZX_9987/article/details/102728989
今日推荐