学习git使用
准备工作
安装git
当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:
1 | $ git config --global user.name "John Doe" |
重申一遍,你只需要做一次这个设置。
如果你传递了 –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
Solution
https://stackoverflow.com/questions/23401652/fatal-the-current-branch-master-has-no-upstream-branch
Large Files
Solution:
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"
切换分支
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 | git clone <版本库的url> |
本地目录不想与远程仓库同名
1 | git clone <版本库的网址> <本地目录名> |
git pull
拉取远程分支更新到本地仓库的操作。
比如远程仓库里的学习资料有了新内容,需要把新内容下载下来的时候,就可以使用git pull
命令
git pull是相当于从远程仓库获取最新版本,然后再与本地分支merge(合并)
用法
1 | git pull <远程主机名> <远程分支名>:<本地分支名> |
1 | #将远程origin仓库的master分支拉取下来与本地当前分支合并 |
git fetch:更新远程代码到本地仓库
理解 fetch 的关键, 是理解 FETCH_HEAD
FETCH_HEAD指的是: 某个branch在服务器上的最新状态’。
这个列表保存在 .Git/FETCH_HEAD 文件中, 其中每一行对应于远程服务器的一个分支。
当前分支指向的FETCH_HEAD, 就是这个文件第一行对应的那个分支.
一般来说, 存在两种情况:
- 如果没有显式的指定远程分支, 则远程分支的master将作为默认的FETCH_HEAD
- 如果指定了远程分支, 就将这个远程分支作为FETCH_HEAD
用法
1 | git fetch origin master |
或者
1 | git fetch origin master:temp |