前言
如果你学会了,可以忽略本文章,或去项目经验地图寻找更多答案
设置用户名
//每次创建新仓库,都需要设置用户名
git config --global user.name "your name"
git config --global user.email "your email"
//也可以在提交代码时输入用户名
git commit -m "提交" --author="joe_li <woai@163.com>"
基本命令
git init //在git bash 进入文件夹,运行命令,初始化仓库
git update-git-for-windows //版本升级
git config --list //查看用户信息配置
//远程仓库
git remote //查看远程仓库
git remote -v //查看仓库具体仓库
//查看状态
git status
1.如果是nothing...,说明已经添加到了仓库区
2.如果是modified ProjectFile(绿色),说明只添加到了缓存区
3.如果是modified ProjectFile(红色),说明有文件修改了,但没有添加到任何区
git diff 文件名 //查看具体改变的内容
//日志
git log //查看当前日志,详细
git log --oneline //查看当前简略日志
git reflog //查看历史日志:(可以看到所有提交的版本号)
//删除恢复(放弃修改内容)
rm a.txt //删除文件
git checkout -- a.txt //删除文件再恢复文件:必须在没有重新commit之前
添加文件到本地仓库
1. 选择文件
选择单个文件,添加到缓存区:git add ./ProjectFile
添加多个文件:git add ./
2. 提交与说明,添加到本地仓库区: git commit -m "说明文字"
不加m是进入编辑器模式,按ESC + :q! 强制退出
一步完成,不需要两步:git commit --all -m "说明文字"
把代码提交到仓库
1.通过http上传:
git push https地址 master
(提交代码需要github的账号密码)
2.通过ssh方式上传:生成私钥
git push github-ssh地址 main(分支名称)
如果已经连接了远程仓库:
git push 即可
分支
应用场景:代码质量待检测,代码没有写完
分支:创建另外一条时间线,在另外的分支提交代码
1.创建分支:git branch name(和分离前的代码一样)
2.查看分支:git branch (* 绿色代表当前)
3.切换分支:git checkout name
简写:创建并切换分支,git checkout -b name
4.合并分支:git merge name(分支名字)
5.删除分支:git branch -d name(在别的分支才能删除)
6.手动修改:
两个分支都更新了,会造成合并失败,会把两个文件项目的内容合并在一起,
需要手动删除冲突的代码,然后再次提交
代码合并冲突
冲突的情况一:
开发人员A:从远程dev拉取一份代码,写完后,push到远程dev
开发人员B:同样从远程dev拉取了同一份代码,再push到dev就会报错
解决:先pull代码下来,然后合并代码,再次提交
冲突的情况二:
开发人员已经开发版本A,在dev分支
管理人员经过审核,又修改了一点内容,提交到远程main中
这时如果又在dev分支,版本A代码的基础上增加内容
管理人员再和已经提交的代码合并,就和原来的内容产生冲突
可以在管理工具查看,选择合并策略:
1.保留原有(已经提交的)
2.保留插入(最新添加的)
3.保留两者(两个都要)
版本(代码)回退
1.通过序号:(0代表最近一次,1代表上上一次,2代表上上上一次)
git reset --hard Head~0
2.通过版本号:(其他版本号隐藏,没有删除,可再次通过版本号切换)
2.1:通过git log --oneline 显示版本号
8dc8e50 这是第二个功能
4e32733 这是第一次提交
2.2:回退
git reset --hard 4e32733 //第一个版本
3.如果又想回到回退前,可以通过版本号
3.1:通过git reflog 查看历史提交的版本号
git reset --hard 8dc8e50 //第二个版本
学习更多