git的使用
2021-06-16 本文已影响0人
落幕12
git的简单介绍
- 使用:使用的是git bash here 使用命令操作
- 仓库
是用来存储代码的一个文件夹,这个文件夹被git工具所管理
本地仓库;本地计算机上被git管理的文件夹
远程仓库:远程服务器上被git管理的文件夹 - 推送:将本地仓库中的内容上传到远程仓库---push
- 拉取(同步):将远程仓库的内容下载到本地一份--让本地仓库和远程仓库保持一致
- give.com---git服务器网站 -服务器在国内
- GitHub.com --服务器在国外
本地操作
本地文件夹如何变成仓库?
- 进入该文件夹的目录下
- 使用git init
如何给仓库中存储内容?
- 工作区:还没有正式进入仓库,只是即将进入仓库,正在开发的源代码
- 暂存区:已经进入仓库了,但是还没有真正放到最终存放的地方,只是临时存放,等待登记造册,已经写好了
- 历史区/版本区:已经登机好,可以放到最适合的地方。
仓库中可以查看仓库的状态
git status
//标红的文件表示在工作区
//标绿的文件表示在暂存区
将工作区的内容放在暂存区
git add 文件名称
git add . //表示将所以工作区的内容放到暂存区
将暂存区的内容重新拿回工作区
git reset HEAD --文件
git reset HEAD -- . //表示将所以暂存区的内容拿回工作区
将暂存区的内容放到历史区
git commit -m "版本描述"
//当将所以暂存区的内容放到历史区的时候,工作区就是干净的 working tree clean
注意事项:
- 不能单独将某一个文件放在历史区,一次性会将所有暂存区的内容放到历史区
- 只能将暂存区的内容放到历史区,不能跨步骤(将工作区的内容放到历史)操作
版本操作
- 查看所有版本
git log
- 设置名字和邮箱
git config --global user.name '名字'
git config --global user.email '邮箱'
- 回退版本
git reset --hard HEAD^ //^的个数表示回退几个版本
4.版本跳转
git reset --hard 版本号 //版本号不用写全,只要有前8位就好
只要是形成过的历史版本,版本号就可以在.git中的隐藏文件中找到
- 删除版本
git rebase - i 版本号
注意:删除的时候不能指定被删除的版本号,要删除上一个版本号
执行这个命令,会打开一个文件,要删除成功,需要将打开这个文件的开头单词pick改成drop 后保存并退出。
两个特殊文件
- git在管理文件夹的时候,不能管理空文件夹,为了避免误会发生,让空文件夹被管理,git提供一个专业的管理空文件夹的文件,名字是固定的:gitkeep
- 如果某些文件或文件夹不希望被git管理,就可以设置一个黑名单,让这个文件或文件夹被忽略掉,此时git提供了一个文件叫 .gitignore 这个文件就可以设置黑名单 将需要被忽略掉的文件的路径写在这个文件中
远程操作
创建仓库的时候,可以选择初始化,也可以选择不初始化
不初始化:本地代码上传到远程
在本地创建仓库,放到暂存区,形成历史区
1) 让本地仓库和远程仓库之间建立连接
git remote add origin 项目地址
其中origin是一个变量,可以自定义
2) 将本地仓库的内容上传到远程仓库
> git push -u origin master
需要输入账号密码:注册使用的邮箱及密码
当再次上传的时候就不需要账号密码了
下次上传的时候只要git push 就好
有一段很自豪的代码,要上传到远程,建议使用不初始化
选择初始化:远程仓库中已经有代码了
- 相当于远程仓库中已经有内容了
- 必须先将这个仓库本地克隆一份
git clone 远程仓库地址 [你想要的文件夹名称]
- 就在这个文件夹中进行本地操作,要上传到远程。
git push
分支操作
查看所有的分支
git branch
每个仓库默认分支是master分支--主分支
创建分支,默认会将当前分支上内容复制一份到新的分支
切换分支
git checkout 分支名
快速创建新分支并切换到新分支
git checkout -b 分支名
合并分支
冲突
在项目开发阶段,有两个人同时操作一个仓库,最终总会有一个人先上传,一个人后上传,先上传的能成功,后上传的人不能成功。
因为在
GitHub 成功从本地仓库推送到GitHub上
步骤:
首先要进入本地文件的文件夹中
[@yeyuxindeMacBook-Air:hello (master)]$ git init
Initialized empty Git repository in /Users/yeyuxin/Desktop/hello/.git/
[@yeyuxindeMacBook-Air:hello (master)]$ git remote add origin https://github.com/syylvia/hello.git
usage: git remote add [<options>] <name> <url>
-f, --fetch fetch the remote branches
--tags import all tags and associated objects when fetching
or do not fetch any tag at all (--no-tags)
-t, --track <branch> branch(es) to track
-m, --master <branch>
master branch
--mirror[=<push|fetch>]
set up remote as a mirror to push to or fetch from
[@yeyuxindeMacBook-Air:hello (master)]$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
sybg.cpp
nothing added to commit but untracked files present (use "git add" to track)
31 void tj(Student stu[]);
[@yeyuxindeMacBook-Air:hello (master)]$ git add.
git: 'add.' is not a git command. See 'git --help'.
The most similar command is
add
[@yeyuxindeMacBook-Air:hello (master)]$ git add sybg.cpp
[@yeyuxindeMacBook-Air:hello (master)]$ git commit -m "学生信息管理系统"
[master (root-commit) 8aae2f1] 学生信息管理系统
1 file changed, 341 insertions(+)
create mode 100644 sybg.cpp
[@yeyuxindeMacBook-Air:hello (master)]$ git remote add origin https://github.com/syylvia/hello.git
[@yeyuxindeMacBook-Air:hello (master)]$ git push -u origin master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 2.23 KiB | 2.23 MiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/syylvia/hello.git
* [new branch] master -> master
https://blog.csdn.net/weixin_35782626/article/details/112401747