Git常用命令详细分析

描述

本文如题目所示,将总结git常用命令,大部分大家其实都很熟悉了,只不过写在这里总结一下。
接下来将按照使用git时的具体情况划分:

  • 第一次创建仓库
  • 使用远程仓库
  • 提交修改
  • 修改冲突

第一次创建仓库

  1. 在github或者gitlab上建立一个新的仓库,然后找到仓库地址
  2. 在自己本地建立一个文件夹,cd进入文件夹

解决命令

git init
git remote add <远端仓库名字> <远端仓库网址>
git add <更改的文件>
git commit -m "提交描述"
git push <远端仓库名字> master

使用远程仓库

来一句最简单的,在你需要代码的位置执行

解决命令

git clone <远端仓库网址>

提交修改

解决命令

 git add <更改的文件>
 git commit -m "提交描述"
 git pull <远端仓库名字> master
 git push <远端仓库名字> master

注意:

  • 如果你没有为远端库改名的话,远端仓库名字为origin
    改名命令

解决命令

git remote rename origin <你想改的名字>
  • 想要提交全部更改的命令

解决命令

git add *

修改冲突

情况1

比如说我有两台电脑,一台Mac,一台Ubuntu,我们的远程仓库都有一个1.cpp
Ubuntu对1.cpp进行了更改并push到了github上
那么此时如果Mac对1.cpp再进行更改,在pull命令时会有冲突
解决命令

git add 1.cpp
git commit -m "add include string"
git pull github master

Mac提示我

Auto-merging 1.cpp
CONFLICT (content): Merge conflict in 1.cpp
Automatic merge failed; fix conflicts and then commit the result.

1.cpp中这时会出现HEAD字样:

<<<<<<< HEAD
#include <string>
=======
int main(int argc, char** argv){
	return 1;
}
>>>>>>> 747c4214202073e72e0d2984690df9f2a8253361

这其中

#include <string>   这个是我Mac上的修改

而github远端的版本是

int main(int argc, char** argv){
	return 1;
}

解决命令

  1. 手动修改出现冲突的文件,进行你想保留的删改
git add <你手动合并的文件>
git commit -m "merge"
git pull github master
git push github master

情况2

紧接着情况1所做的操作,我现在手动merge了1.cpp,并且完成了push
随后我使用Ubuntu电脑再次更改了1.cpp,执行命令
解决命令

git add 1.cpp
git commit -m "Ubuntu modify"
git pull github master

这时Ubuntu提示我(不出意外的话,除了一些路径不同,你应该和我一样)

GNU nano 2.5.3 File /home/..../.git/MERGE_MSG

Merge branch 'master' of https://github.com/.....

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts 
# the commit

解释:
[原话]请输入一条提交消息来解释为什么需要进行此合并,特别是在将更新的上游合并到主题分支的情况下。
[翻译]远程github上已经被更新过了(之前情况1中Mac更新的),你得解释一下为什么要把远程库和你现在的分支合并

解决命令

  1. 你可以更改提示中的话(我一般不改,改的话键盘随便输入就行),如果你不更改,这次合并的提交信息就是
Merge branch 'master' of https://github.com/.....
  1. 同时按下键盘crtl+x(终端下面也是有按键提示的)会退出。但如果你更改了什么的话系统提示
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES)?
Y Yes
N No  ^C Cancel
  1. 保存更改请你输入y,然后回车(输入回车代表不更改文件名)

解决命令
以上的情况是由于git使用了nano编辑器。如果使用nano编辑器不舒服的话,更改nano编辑器为vim可以这么做

gedit ~/.gitconfig

然后在文件中添加

[core]
    editor = vim

误删文件

如果github上的是1.cpp文件,你本地的文件是1.cpp和2.cpp
如果你执行add命令时只添加了1.cpp

git add 1.cpp
git commit -m "XXX"
git pull github master

你会发现你刚才的2.cpp文件会消失

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值