常用的git命令,基本工作够用了

1. 克隆远程仓库的代码到本地

git clone git@xxx.git
拉取下来默认分支名为 master

2. 拉取最新代码更新到本地

如果本地代码库没有任何修改, 直接 git pull
如果本地代码有修改,但是没有提交或者暂存,git pull时会报错;提醒你有未提交/暂存的修改。
此时,你需要根据自己需求,要么使用git stash将修改的内容暂存起来,
要么将修改git commit -m “注释内容” 进行提交,注释内容主要用来描述本次修改内容。

3. 创建本地分支

使用 git checkout -b 分支名 来创建分支,如果分支名不存在,则会创建一个新的分支并切换到新建分支,
如果分支名存在,则会直接切换到分支。

4. 在本地分支上进行修改操作,并提交

假如我们在本地名为master的分支上进行了修改,

  • 首先我们需要利用 git add . 将添加当前修改,也可以 git add 目标文件名 添加指定文件;可以使用git status 查看当前的状态;如果有某些文件在.gitignore文件里面被忽略了不让add的话, 我们可以使用 git add -f 目标文件名 进行强制添加;
  • add完之后,我们使用git commit -m “注释内容” 提交;
  • commit之后,我们使用git log 可以查看刚刚的提交记录,包括提交时写的注释内容;如果你做了不止一次修改,不想每次都重新用新的注释内容进行提交,不想要每次都生成一个新的commit节点,那么你可以使用git commit --amend 将第二次提交结合上一次的提交内容合成一个commit节点;
  • 最后,我们想将提交的修改push到远端分支上,使用git push 远端节点,假如我们想提交到远端的master分支上,我们使用git push origin master 进行不覆盖式的提交,如果想用本地的代码完全覆盖掉远端的分支,使用git push -f origin master 强制提交。

5. 删除远端分支

  • 删除远端分支
    git push origin --delete 远端分支名
  • 删除本地分支
    git branch -d 本地分支名
    git branch -D 本地分支名

6. git pull 和 git pull -r 的区别

git pull = git fetch + git merge
git pull -r = git fetch + git rebase
假设有个场景,A和B都需要push代码到origin的master上,A和B拉取的代码后,新建了自己的分支进行修改,并要提交到master上;
在这里插入图片描述
此时A的修改内容先提交到origin上;
在这里插入图片描述

那么B在提交前需要拉取最新的代码(包含A的修改的代码D),此时B有两个选择:

  • 如果他使用git pull origin master 拉取代码,使用git
    log
    查看提交记录,此时可以看到有一个commit节点叫Merge xxxxxxxxxx… 这样会形成一个菱形的提交记录;

在这里插入图片描述

  • 如果使用git pull -r origin master 可以避免这种菱形提交,会将B的提交rebase到最新master节点上,此时可能会遇到的问题是,如果B的提交和A的提交有交集的地方,会引起冲突,如果这种情况,会提示你先解决冲突conflict,需要B去比较与A的提交冲突的地方,解决完冲突之后,add更新下B的修改后,执行git rebase --continue 就可以继续pull -r的过程;过程中如果觉得有任何操作失误,可以使用git rebase --abort 随时停止pull rebase的过程,并且分支会回到rebase开始前的状态。
    在这里插入图片描述

7. 将分支A的修改提交到分支B

有时候我们可能需要将分支A上做的一些修改直接提交分支B上,我们先切换到分支B,提前git log看下分支A上需要的节点号是多少,使用git cherry-pick commit节点号,就可以将在A上做的某些改动直接pick到B上。

8.修改某次的commit内容

有些时候很多个提交节点后,发现某个节点上的修改有问题,希望回退到某个节点进行修改,此时我们可以使用git rebase -i commit节点号回退到你希望修改的节点的前一个节点处,就可以看到你需要修改的节点,我们将该节点前的pick改成edit 后保存退出,然后你就可以在这个节点继续进行修改,修改结束后使用git commit --amend进行提交,这个操作会将你当前修改合并到这个commit节点之前的修改中,提交后使用git rebase --continue 我们就可以成功回到最新的修改节点啦~

9. 还有一些比较暴力但是很好用的命令

  1. git reset --hard commit节点号
    这个命令很暴力,但是很快,当你搞不清那些节点的时候,不知道自己提交了什么鬼,想要恢复到你想回去的某次提交的时候可以使用,
  • 先用git log 查看一下之前commit的节点,找到你想退回到的某个commit id,复制下来
    在这里插入图片描述
    比如这里我想退回到最出的origin/master,其commit节点号是d9ab27dc42c753b9a1bb2163221b73f63bd490af 那么我可以使用
    git reset --hard d9ab27dc42c753b9a1bb2163221b73f63bd490af 回到这个节点。
  1. 有时候会用到 git push -u origin 分支名
  2. 使用 git squash 将很多个commit节点进行合并
  3. 本地创建分支 git checkout -b 分支名 并推至远端分支(不存在)
    使用 git push --set-upstream origin 分支名
  4. 推送本地分支至远端,并创建远程分支
    git push <远程主机名> <本地分支名>:<远程分支名>
  5. 未完待续~
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值