Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。
➢ 集中式版本控制工具 CVS、SVN(Subversion)、VSS……
➢ 分布式版本控制工具 Git、Mercurial、Bazaar、Darcs……
工作机制:
工作区 add—>暂存区 commit—>本地库
Git 和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
➢ 局域网
✓ GitLab
➢ 互联网
✓ GitHub
✓ Gitee 码云
Git常用命令 命令名称 作用git config --global user.name 用户名 设置用户签名
git config --global user.email 邮箱 设置用户签名
git init 初始化本地库
git status 查看本地库状态
git add 文件名 添加到暂存区
git rm --cached 删除暂存区中的文件
git commit -m "日志信息" 文件名 提交到本地库
git reflog 查看历史记录
git log 查看版本详细信息
git reset --hard 版本号 版本穿梭
在用户/.gitconfig查看用户签名
[filter "lfs"] smudge = git-lfs smudge -- %f process = git-lfs filter-process required = true clean = git-lfs clean -- %f [user] name = KennyX email = lyy406@foxmail Git分支操作在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来, 开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
命令名称 作用git branch 分支名 创建分支
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支上
当出现分支冲突时(master|MERGING)要手动解决,再次提交不能带文件名 直接提交
在.git中 HEAD文件可以查看当前分支,再/refs/heads的master中可以查看当前指向的版本
Github操作远程仓库操作
命令名称 作用git remote -v 查看当前所有远程地址别名
git remote add 别名 远程地址 起别名
git push 别名 分支 推送本地分支上的内容到远程仓库
git clone 远程地址 将远程仓库的内容克隆到本地
git pull 远程库地址别名 远程分支名 将远程仓库对于分支最新内容拉下来后与 当前本地分支直接合并
SSH免密登录
先到用户的主页目录,删除.ssh文件夹(如果没有.ssh文件夹,忽略此步)
运行命令ssh-keygen生成.ssh目录:
abc@DESKTOP-R85C9HV MINGW64 ~/Desktop/HelloGit-clone/HelloGit (master) $ ssh-keygen -t rsa -C abc@123.com Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/abc/.ssh/id_rsa): Created directory \'/c/Users/abc/.ssh\'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/abc/.ssh/id_rsa Your public key has been saved in /c/Users/abc/.ssh/id_rsa.pub The key fingerprint is: SHA256:aeNMB/hP2yiH/Dka2jK9BJciSgA8yKKLlKXX8oei7J0 jallenkwong@163.com The key\'s randomart image is: +---[RSA 3072]----+ |= | |++ . . | |+ = . . . | |.= o . . + | |o.o + + S o | |o. o + @ * + | |. o . ..O = . | | o. . o+.=.. | |.. E .o+oo. | +----[SHA256]-----+ abc@DESKTOP-R85C9HV MINGW64 ~ $ ls -a .ssh ./ ../ id_rsa id_rsa.pub. # 生成公钥 abc@DESKTOP-R85C9HV MINGW64 ~ $ cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQChXy8I20br9nu4GCNeZSDkozfHvlRFpXiImYnVlHVvyvFgjct1/zMeJgot1J6+yArSJbA4TMlS9nG8owCE6C9yqhPceDlKtQbARKS2pW7IyP5OhIbcqVmWmvvd+IMmsWrWgK9S6jqp0xSqv3Z3mlcHWOAK18oOe6wF6b3SyGgCP/EcwwUGX4NG7jukhK+In9joSuAxchEg/Ba2/LVjqtfBn3hXZx/SEt+rJ0UVPIT/eEe32HflrzokNcO7l0IgyLntv5QEAsSC2hiGxrM6vF5tQpb12MVZnt1/01ytP0ruQn2TVTI96vsOAa3Cj98dAH2Z0JdqZUSVBw+o3AqXP5oeF1JWkDHZzHQjLgu741wnUZn+vVXFBu1xQyApbvH7y7cNbq8PaxU+SyZbVXbq3RwTywJsyFQvsIOM5l0tG7jUD0QAd6dP3rcNODjFTaafJaBsR9aMwvKQd/d7H+BdwFPYOFp8HB2JAzhRpvlS4Av9MCIe0474wZ0T2QOJmcs7mns= abc@123.com将公钥添加到github中即可不用输入Github账号密码便可推送。