Git开发
在工作区创建本地仓库
git init
设置全局的邮箱和名字(代码提交者)
git config --global user.name "your_name"
git config --global user.email your_email
git config --list // 查看git配置
从本地库到远程库推送操作命令
git add <file> // 将某个文件添加到缓存区
git add . //增加所有文件,到暂缓区
git commit -m '第一次提交' // 提交到本地仓库,信息说明
git commit -am '第二次提交' // 添加到缓存区,再提交到本地库(2个操作结合)
ssh-keygen -t rsa -C "your_email" //生成公钥与远程仓库关联,可以使用ssh
git remote add origin 你的仓库地址 //本地库连接远程库
git push -u origin master // 将项目推到远程仓库,第一次推到远程仓库,需要执行
git push // 将项目推送到远程仓库
查看日志
git log //查看提交日志信息
git log --pretty=oneline //查看提交任务的唯一id
git log --graph --pretty=oneline //带图的任务日志,类似树
git reflog //查看所有操作的日志信息,包括操作的任务id
版本回退
git reset --hard HEAD^ //回退上一个版本
git reset --hard HEAD^^ //回退上两个版本
git reset --hard HEAD~5 //回退5个版本 波浪号后面的数字代表往回退几个版本
git reset --hard xxxxxx // xxxxxx代表版本的id,同上查看日志id,id保持唯一即可,不用全部复制
查看git本地仓库的文件
git ls-files
从本地库拉取文件
git checkout <file> // 从本地库拉取文件到工作区
删除文件
方式一:
从工作区删除文件,在git中删除文件也被认为是修改文件,需要git add <file>,再提交到本地库。
方式二:
git rm <file> // 同时将本地库和工作区的文件删除了
分支操作(本地库)
git checkout branch_name //切换到指定分支
git checkout -b branch_name //创建分支并切换到新建分支
git branch -d | -D branch_name //删除指定分支,需要切换到主干master上操作,-D是强制删除
git branch // 查看所有分支,并且*号标记当前所在分支
git merge branch_name //合并分支,合并分支前一定要切换到主干master上进行合并操作
git branch -m | -M oldbranch_name newbranch_name //重命名分支,如果newbranch_name名字已经存在,需要-M强制重命名 ,如果不冲突则使用-m 即可
分支操作(本地加远程)
git branch -a // 查看本地和远程仓库的分支
git push origin branch_name //推送本地分支到远程
git push origin :remote_branch //删除远程分支(本地分支还保留)
git fetch // 获取远程仓库分支最新的状态
git checkout -b local_branch origin/remote_branch //拉取远程指定分支在本地创建,通常需要获取最新状态
标签管理 git可以对某一时间点的版本打上标签,开发中在发布某个软件版本(比如v1.0等等)的时候,通常使用版本库软件命令来对某一版本打上一个标签,以方便标识
git tag tag_name // 新建标签默认为HEAD
git tag -a tag_name -m 'xxxx' //添加标签并指定标签描述信息
git tag //查看所有标签
git tag -d tag_name //删除一个本地标签
git push orgin tag_name //推送本地标签到远程
git push orgin --tags //推送全部未推送过的标签到远程,已推送的忽略
git push origin :refs/tags/tag_name //删除一个远程标签
分支冲突,同一个文件同一个行,主干和分支代码不一样。同一文件不同行,代码不一样,不是冲突,解决方式灵活,可以以主干代码为主,也可以以分支代码修正为主
多人协同代码冲突,在开发时,你在推送代码时,主张在推送之前先将项目拉取,出现冲突解决冲突,再推送到远程仓库