Git常用操作

🐳总结Git日常基本操作,不定时添加一些遇到的问题,以及从小白入门连接本地git和github等
🔔默认已有Github或Gitee等账号,已下载安装git


一、本地Git配置

1.1配置用户信息

  • Git bash here
    $ git config --global user.name "boom1999"
    $ git config --global user.email "lingzhicheng@zjut.edu.cn"
    $ git config --list

UserInfo

1.2生成SSH Key

  • Git bash here
    $ ssh-keygen -t rsa -C "lingzhicheng@zjut.edu.cn"

SSHKey

  • 添加SSH Key

    将提示位置(/c/Users/xxx/.ssh/id_rsa)的公钥(id_rsa.pub)内容复制粘贴至github > setting > SSH and GPG keys> key
    注意不要弄混公钥和私钥
    若只在某一个Repo中使用,可在此Repo中setting > Deploy Keys中添加公钥

DeployKeys

二、从本地上传Repositories

📝本地创建Repo

  • 新建目录/选择目录
  • Git bash here 进入命令行操作

    新建文件
    $ mkdir 文件名
    进入文件夹
    $ cd 文件名

  • 初始化git仓库
    $ git init
  • 查看文件内容检查是否配置成功
    $ ls -la

至此git仓库初始化结束,默认叫master分支

  • 新建测试(dev)分支
    $ git checkout -b dev
  • 检查git状态
    $ git status

GitInit

  • 使用编辑器在文件夹中编辑内容,测试和执行
  • 提交文件至缓存区(用git add .提交目录下所有文件)
    $ git add index.md

GitAdd

  • 撤销缓存内容
    $ git rm --cached index.md

GitRm

  • 发布版本
    $ git commit -m 'This is a commit.'
  • 查看版本日志(—graph)
    $ git log

GitCommit

  • 将测试分支合并到主分支

    切换回主分支
    $ git checkout master
    执行合并操作
    $ git merge dev
    删除dev分支
    $ git branch -d dev

GitMerge

💻Repo上传

  • 在Github上新建项目,复制生成项目对应的SSH地址

GitDemo

$ git remote add origin git@github.com:boom1999/gitdemo.git

GitDemoUpload

  • 第一次推送本地分支(+u将本地和远程分支关联)
    $ git push -u origin master
  • 以后推送本地分支
    $ git push origin master
  • 推送其他分支(如dev)
    $ git push origin dev

GitRemote

若有提示👇,请参照上文配置SSH Keys

1
2
3
4
5
ERROR: Permission to boom1999/gitdemo.git denied to deploy key
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

三、从远程clone Repositories到本地

  • 这是第二种方式,即现在GitHub上创建项目,或从已有的项目clone到另一台机器。
  • 在Github上新建项目,复制生成项目对应的SSH地址
    $ git clone git@github.com:boom1999/gitdemo.git
    $ cd gitdemo
    $ ls -la

四、Git基本指令汇总

  • 配置全局个人信息
1
2
git config --global user.name "your user name"    
git config --global user.email "your email address"
  • 🎯More
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
git config --list       //显示所有配置列表
ls //显示目录下可见文件
ls -la //显示当前目录所有文件包括隐藏文件
ls | grep *.js //通过管道筛选所有js文件
git init //初始化git仓库
git add //添加该文件到暂存区
git status //查看当前状态
git rm --cached //从暂存区移除到工作区
git add . //添加所有的文件到暂存区
git commit . -m "" //将缓存区的内容提交到历史区("-m"表示不跳到另一个页面)
git commit . //添加所有文件到历史区
git checkout //将工作区的修改撤销;取回暂存区的文件
git status -s //查看哪些文件被更改过
git log //查看提交历史
git diff //查看工作区和暂存区文件的区别
git diff --cached //查看暂存区和历史区的区别
git diff HEAD //查看工作区与上一个版本的不同(更改文件后不提交到历史区可用该命令查看)
git log --oneline //提交显示到一行
git log --graph //图形化显示提交的
git reset --hard HEAD^ //所有文件回到上一个版本
git reflog //查看所有的提交
git reset --hard xxxxxx //回到指定版本(前5/6位版本号即可)
git log --oneline --grep="project"
//查找文件中带有project的文件并显示到一行
git reset --mixed HEAD^ //暂存区和历史区回到上一个版本,工作区不变
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

请我喝杯咖啡吧~