0%

使用git来上传code到github

学习git使用

准备工作

安装git

当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:

1
2
3
$ git config --global user.name "John Doe"

$ git config --global user.email johndoe@example.com

重申一遍,你只需要做一次这个设置。

如果你传递了 –global 选项,因为Git将总是会使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要–global选项。

通过git init 把这个文件夹变成Git可管理的仓库

通过git add 文件名(只添加一个)把项目添加到仓库/通过git add .把该目录下的所有文件添加到仓库

通过git status查看你当前的状态

将本地的仓库关联到github上:

git remote add orogin https://github.com/用户名/仓库名

上传github之前,要先pull一下

git pull origin master

上传代码到github远程仓库

git push -u origin master

git push的区别

git push origin

上面命令表示,将当前分支推送到origin主机的对应分支。

如果当前分支只有一个追踪分支,那么主机名都可以省略。

git push

如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push。

git push -u origin master

上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。

Q

image-20220225091918469

Solution

https://stackoverflow.com/questions/23401652/fatal-the-current-branch-master-has-no-upstream-branch

Large Files

image-20220225091627254

Solution:

https://git-lfs.github.com/

https://github.com/git-lfs/git-lfs/issues/1933

https://www.jianshu.com/p/7d8003ba2324

git reset

https://git-scm.com/docs/git-reset

https://blog.csdn.net/weixin_43249548/article/details/116532555

git commit

git commit -m " message"

git commit 详解 - 哒哒呵~ - 博客园

Git commit 常见用法 - 浅浅念 - 博客园

切换分支

main和master

https://backlog.com/git-tutorial/cn/stepup/stepup2_3.html

https://blog.csdn.net/qq_42585582/article/details/109006783

https://www.runoob.com/git/git-branch.html

clone/pull/fetch的区别

参考文章:https://segmentfault.com/a/1190000017030384

git clone

将其他仓库克隆到本地,包括被clone仓库的版本变化

当前目录比方说是在e:/course/中,此时若想下载远程仓库,本地无需**git init**,直接git clone url(url是你远程仓库的地址,直接复制就可以了)。执行git clone等待clone结束,e:/course/目录下自动会有一个.git的隐藏文件夹(如果看不见,请尝试设置隐藏文件夹可见),因为是clone来的,所以.git文件夹里存放着与远程仓库一模一样的版本库记录。

clone操作是一个从无到有的克隆操作,再次强调不需要git init初始化

用法

本地目录与远程仓库同名

1
2
3
git clone <版本库的url>
# git clone https://github.com/tensorflow/tensorflow.git
# git clone git@github.com:tensorflow/tensorflow.git

本地目录不想与远程仓库同名

1
git clone <版本库的网址> <本地目录名>

git pull

拉取远程分支更新到本地仓库的操作。

比如远程仓库里的学习资料有了新内容,需要把新内容下载下来的时候,就可以使用git pull命令

git pull是相当于从远程仓库获取最新版本,然后再与本地分支merge(合并)

用法
1
2
3
4
5
6
git pull <远程主机名> <远程分支名>:<本地分支名>
# 将远程主机origin的master分支拉取过来,与本地的branchtest分支合并
# git pull origin master:branchtest
# 用fetch来表示的话就是:
# git fetch origin master:brantest
# git merge brantest
1
2
#将远程origin仓库的master分支拉取下来与本地当前分支合并
git pull origin master

git fetch:更新远程代码到本地仓库

理解 fetch 的关键, 是理解 FETCH_HEAD

FETCH_HEAD指的是: 某个branch在服务器上的最新状态’。

这个列表保存在 .Git/FETCH_HEAD 文件中, 其中每一行对应于远程服务器的一个分支。

当前分支指向的FETCH_HEAD, 就是这个文件第一行对应的那个分支.

一般来说, 存在两种情况:

  • 如果没有显式的指定远程分支, 则远程分支的master将作为默认的FETCH_HEAD
  • 如果指定了远程分支, 就将这个远程分支作为FETCH_HEAD
用法
1
2
3
4
5
6
git fetch origin master                
#从远程的origin仓库的master分支下载代码到本地的origin maste
git log -p master.. origin/master
#比较本地的仓库和远程参考的区别
git merge origin/master
#把远程下载下来的代码合并到本地仓库,远程的和本地的合并

或者

1
2
3
4
5
6
7
8
git fetch origin master:temp          
#从远程的origin仓库的master分支下载到本地并新建一个分支temp
git diff temp
#比较master分支和temp分支的不同
git merge temp
#合并temp分支到master分支
git branch -d temp
#删除temp