git
版本控制系统
本地工作区 add 暂存区 commit(每一次commit都会产生一个新的版本) 本地仓库 push 远程仓库
git代码托管平台
git使用步骤
1、第一次使用git的时候需要执行1-4步,否则直接跳到第五步。
执行 git config --global user.name [用户名,个人空间地址]
2、执行 git config --global user.email [绑定的邮箱]
3、配置密钥对(公钥和私钥),执行ssh-keygen
, 一路回车,就会在c/users/[电脑用户名]/.ssh
目录下生成公钥和私钥,这两个文件千万不要动!!!
4、把公钥复制到线上,在个人设置安全设置里的SSH公钥的位置
5、如果是新创建一个仓库,就执行5-7步,否则直接跳到第八步。初始化一个本地仓库
在本地项目位置执行git init
,在目录里回多出一个默认隐藏的 .git 目录,这个目录不要动!!!
git仓库不能嵌套,一个本地仓库对应一个远程仓库
6、创建一个远程仓库
登录gitee,新建公开仓库,其他的选项都不要勾
7、关联本地仓库和远程仓库
git remote add origin [线上仓库的ssh地址]
如果在执行这句话的时候报错:fatal: remote origin already exists.
那么就执行 git remote rm origin
,再重新add
8、把本地代码添加到暂存区,git add -A 或 git add .
9、把暂存区的代码提交到本地版本库 git commit -m '[说明这一次提交做的事情]'
10、把本地版本库推送到线上 git push origin master
,在第一次提交的时候需要输入 yes
附录:常见git命令
git status
查看本地仓库状态
git log
查看提交日志,在commit
关键字后面的随机字符串就是版本号
git reset --hard [版本号]
回退到某个版本
git clone [仓库地址]
把线上仓库克隆到本地
git diff [文件名]
查看文件修改
常见linux命令
cd [目录名称]
进入目录
touch [文件名]
新建文件
ls
查看当前目录下的所有文件和文件夹
rm [文件名]
删除一个文件
用于说明 commit 的类别,只允许使用下面7个标识。
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
多人协作创建分支
git checkout -b 文件名
建立并切换分支
在分支上有修改后
git add .
git commit -m 加说明
git push origin 对应文件名
另外一个人要做的
git checkout -b 文件名 origin/文件
添加功能或修改
git add .
git commit -m 加说明
git push origin 分支文件名
git branch
查看分支
git branch -D master
删除本地分支
git push origin --delete master
删除远程分支
更新代码
git pull origin 分支名
(此操作可能变基,造成无意义的commit)
建议使用更新
git pull --rebase origin master
拉取线上分支代码 (会减少无意义的commit)
如果有冲突解决之后commit -m
一下 再执行git rebase --continue
解决冲突
切换分支
git checkout 分支名
对commit记录进行操作
git rebase -i 4560d5dd728c627291201eb8c04041628de7d5e4
(commit记录ID,且能改动的为id之后的提交)
按I
进入编辑模式
更改前缀为drop
为删除
更改前缀为S
为合并
git commit --amend
本次提交合并到上一次提交 (打开记录编辑器)
git commit --amend --no-edit
本次提交合并到上一次提交 并且不编辑commit信息(使用上一次提交的commit)
git cherry-pick <commitHash>
拉取某次commit信息到当前
如果操作过程中发生代码冲突,Cherry pick 会停下来,让用户决定如何继续操作。(rebase操作同理)
(1)--continue
用户解决代码冲突后,第一步将修改的文件重新加入暂存区(git add .
),第二步使用下面的命令,让 Cherry pick 过程继续执行。
$ git cherry-pick --continue
(2)--abort
发生代码冲突后,放弃合并,回到操作前的样子。
(3)--quit
发生代码冲突后,退出 Cherry pick,但是不回到操作前的样子。