[Version Control] Git命令新手入门

2020.12.28 补充:

因2020年美国种族主义事件的影响,自2020年10月1日起,GitHub将默认分支名由master改为main,详见https://github.com/github/renaming

因此,使用Git命令进行fetch、pull和push等操作时需要注意,使用origin main,而不是origin master。

目录

一、关联并上传新的本地项目

二、删除本地仓库/远程仓库下受.gitignore规则制约的文件

三、Git的代码更新以及冲突解决

1. 方法一:git pull = git fetch + git merge

2. 方法二:git pull --rebase = git fetch + git rebase

3. 方法三:git stash


记录并分享笔者学习Git命令的路程。

 

一、关联并上传新的本地项目

当本地已经创建了一个项目,想将这个项目公开在GitHub上,则需要在GitHub上为这个项目开辟一个属于它的“个人主页”。

1. 在GitHub创建新的空项目

创建的过程不涉及Git命令,故不详细说明。

2. 在项目文件夹下初始化本地Git仓库

git init

3. 关联远程仓库

此处将git地址替换为自己的远程仓库地址

git remote add origin git@github.com:***/***

4. 合并远程仓库的内容

git pull --rebase origin master

5. 提交项目文件至文件暂存区

git add *

6. 提交项目文件至本地仓库

在引号添加提交信息说明

git commit -m "xxxxxxxx"

7. 提交本地仓库的内容

git push origin master

 

PS:

创建并关联的过程中,先pull再add的原因是为了能够获得GitHub自动创建的.gitignore文件。

.gitignore文件的作用是帮助git分辨哪些文件是没有必要提交至仓库的,git以此文件为依据来过滤项目文件夹下的所有文件,被过滤的文件不会纳入git管理。在必要时,可以再pull之后,先修改.gitignore文件,自行控制需要纳入git管理的文件。

但是当文件已经被纳入git的管理(被add/commit)之后,则不会受到.gitignore的规则影响。

 

二、删除本地仓库/远程仓库下受.gitignore规则制约的文件

当不想被纳入git管理的文件已经上传至本地仓库,或者同步至远程仓库,则需要对项目来一次清理。

1. 删除git本地缓存,使文件变成untrack状态

git rm -r --cached *

2. 将项目重新添加至暂存区

git add *

3. 查看git的文件状态

git status

这条命令非常常用,对了解本地项目有很大帮助。与这条命令类似的还有git diff。status和diff命令的具体语法学习参照官方说明:

git status --help
git diff --help

4. 提交更新至本地仓库

git commit -m "xxxxxxxx"

5. 将本地仓库更新推送至远程仓库

git push origin master

 

三、Git的代码更新以及冲突解决

1. 方法一:git pull = git fetch + git merge

一般情况下,推荐使用方法一对本地代码进行更新。

(1) 把远程仓库master分支下载到本地并存为temp分支(分支名可自取)

git fetch origin master:temp

(2) 查看temp和本地master分支的不同

git diff temp

(3) 合并temp分支和master分支

git merge temp

(4) 手动处理conflict

(5) 添加冲突文件

git add *

(6) 提交文件并上传

git commit -m "xxxxxxxx"
git push origin master

(7) 删除temp分支

git branch -d temp

 

2. 方法二:git pull --rebase = git fetch + git rebase

merge和rebase最大的差别在于分支合并之后,分支树的显示情况。

(1) 把远程仓库master分支合并至本地

git pull --rebase origin master

(2) 手动解决冲突文件

(3) 重新添加冲突文件至暂存区

git add [<filepath>...]

(4) 继续rebase,重复(2)、(3)、(4)步骤

git rebase --continue

(5) 提交并上传至远程仓库

git commit -m "xxxxxxxx"
git push origin master

 

3. 方法三:git stash

该方法适用于改动未提交到本地仓库的情况

(1) 把工作区和暂存区的改动全部保存到stash

git stash

(2) 更新本地仓库

git pull origin master

(3) 取出保存的改动

git stash pop

(4) 手动解决冲突

(5) 提交改动并上传

git commit -m "xxxxxxxx"
git push origin master

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值