git 分布式版本控制系统
github 远程代码托管仓库
-
git环境搭建
由于git和github之间是用ssh加密传输的,因此需要配置公钥
ssh-keygen -t rsa -C “注册账号的邮箱” -》 生成公钥,保存在id_rsa.pub文件上
github登录 -> setting -> SSH and GPG keys -> new SSH key -> 将公钥粘贴进去,并设置用户名
ssh -T git@github.com 查询用户是否连接成功
git config --global user.name “名字”
git config --global user.email “邮箱” -
git clone
(1)把指定的远程仓库代码拉取到本地
(2)自动创建远程仓库名称origin
(3)自动生成本仓库,本地生成一个默认的主干分支master,追踪远程的主干分支 -
git基本命令
git add 把git工作区的改动添加到暂存区
git commit -m “xxx” 把暂存区代码提交到本地分支
git push 把本地分支的代码推送到远程分支上
git pull origin master 把远程代码拉取到本地
git status 查看当前操作的状态信息
git log 查看代码修改日志
工作区: 当前存放代码的目录
暂存区:git add把工作区修改的内容添加到暂存区上
本地仓库:git commit把本地暂存区的修改提交到本地仓库上(不同分支代表不同的代码版本)
远程仓库:通过git push把本地仓库某一分支上的代码推送到远程仓库的某分支上
HEAD指针:本地仓库每个分支上的代码的修改都会生成一个commit id信息,HEAD指针指向最近一次的commit提交,通过commit id可以进行版本回退 -
git回退,回退都是回退一部步
工作区回退:git checkout – file 把工作区的代码用版本库中的代码覆盖
暂存区回退:git reset HERD 只把暂存区的内容全部撤销
本地仓库回退:git reset --hard commitid 让HEAD指针指向以前的一个版本
远程仓库回退:git push -f 强制推送
git reflog 产看HEAD指针的改动日志 -
本地分支
查看分支: git branch
新建分支:git branch 分支名
切换分支:git checkout 分支名
删除分支:git branch -d/-D 分支名 其中-D是强制删除
合并到主分支:git merge 分支名 -
远程分支
查看远程仓库名称:git remote
查看远程分支:git branch -r
查看远程和本地的追踪关系:git branch -vv
创建本地指定追踪远程:git checkout -b 本地名 origin/远程名 一般把本地和远程的名字设置成一样的
给当前分支设置追踪:git branch -u origin/远程名 -
版本冲突:
(1)情况一:两个用户在V1版本上开发,但用户一先开发完push,用户二再push时的时候,就会发生冲突
(2)情况二:同理,用户分支基于的版本落后
(3)解决方法:git push的时候git会合并,但仍然冲突的地方需要用户手动修改