git的使用

git的简单介绍

  1. 使用:使用的是git bash here 使用命令操作
  2. 仓库
    是用来存储代码的一个文件夹,这个文件夹被git工具所管理
    本地仓库;本地计算机上被git管理的文件夹
    远程仓库:远程服务器上被git管理的文件夹
  3. 推送:将本地仓库中的内容上传到远程仓库---push
  4. 拉取(同步):将远程仓库的内容下载到本地一份--让本地仓库和远程仓库保持一致
  5. give.com---git服务器网站 -服务器在国内
  6. GitHub.com --服务器在国外

本地操作

本地文件夹如何变成仓库?

  1. 进入该文件夹的目录下
  2. 使用git init

如何给仓库中存储内容?

  1. 工作区:还没有正式进入仓库,只是即将进入仓库,正在开发的源代码
  2. 暂存区:已经进入仓库了,但是还没有真正放到最终存放的地方,只是临时存放,等待登记造册,已经写好了
  3. 历史区/版本区:已经登机好,可以放到最适合的地方。

仓库中可以查看仓库的状态

git status

//标红的文件表示在工作区
//标绿的文件表示在暂存区

将工作区的内容放在暂存区

git add 文件名称
git add .    //表示将所以工作区的内容放到暂存区

将暂存区的内容重新拿回工作区

git reset HEAD --文件
git reset HEAD -- .    //表示将所以暂存区的内容拿回工作区

将暂存区的内容放到历史区

git commit -m "版本描述"
//当将所以暂存区的内容放到历史区的时候,工作区就是干净的 working tree clean

注意事项:

  1. 不能单独将某一个文件放在历史区,一次性会将所有暂存区的内容放到历史区
  2. 只能将暂存区的内容放到历史区,不能跨步骤(将工作区的内容放到历史)操作

版本操作

  1. 查看所有版本
git log
  1. 设置名字和邮箱
git config --global user.name '名字'
git config --global user.email '邮箱'
  1. 回退版本
git reset --hard HEAD^      //^的个数表示回退几个版本

4.版本跳转

git reset --hard 版本号     //版本号不用写全,只要有前8位就好

只要是形成过的历史版本,版本号就可以在.git中的隐藏文件中找到

  1. 删除版本

git rebase - i 版本号
注意:删除的时候不能指定被删除的版本号,要删除上一个版本号
执行这个命令,会打开一个文件,要删除成功,需要将打开这个文件的开头单词pick改成drop 后保存并退出。

两个特殊文件

  1. git在管理文件夹的时候,不能管理空文件夹,为了避免误会发生,让空文件夹被管理,git提供一个专业的管理空文件夹的文件,名字是固定的:gitkeep
  2. 如果某些文件或文件夹不希望被git管理,就可以设置一个黑名单,让这个文件或文件夹被忽略掉,此时git提供了一个文件叫 .gitignore 这个文件就可以设置黑名单 将需要被忽略掉的文件的路径写在这个文件中

远程操作

创建仓库的时候,可以选择初始化,也可以选择不初始化

不初始化:本地代码上传到远程

在本地创建仓库,放到暂存区,形成历史区
1) 让本地仓库和远程仓库之间建立连接
git remote add origin 项目地址
其中origin是一个变量,可以自定义
2) 将本地仓库的内容上传到远程仓库
> git push -u origin master
需要输入账号密码:注册使用的邮箱及密码
当再次上传的时候就不需要账号密码了
下次上传的时候只要git push 就好

有一段很自豪的代码,要上传到远程,建议使用不初始化

选择初始化:远程仓库中已经有代码了

  1. 相当于远程仓库中已经有内容了
  2. 必须先将这个仓库本地克隆一份

git clone 远程仓库地址 [你想要的文件夹名称]

  1. 就在这个文件夹中进行本地操作,要上传到远程。
    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 []  

    -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(es) to track
    -m, --master 
                          master branch
    --mirror[=]
                          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 ..." 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

你可能感兴趣的:(git的使用)