Git使用
Git简介
Git是一个开源的分布式版本控制系统,用于高效的处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git安装
windos下安装
Linux下安装
yum install git
Git配置
1. 配置个人的用户名和电子邮件
git config --global user.name dream git config --global user.email 158148313@qq.com
如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。
2. 创建版本库
cd F:
mkdir testgit # 创建仓库
git init # 初始化仓库
- 不要将仓库建在中文目录下,否则可能出现问题。
- .git是一个隐藏目录,不要随便乱碰(每一次的操作,都会有记录)
本地仓库操作
提交操作
工作区:开发者的工作目录
暂存区:修改已被记录,但未录入版本库的区域
版本库:存放变化日志以及版本信息
git status # 查看文件的状态,红色是表示未被添加,绿色表示等待提交到本地仓库 git add a.py # 表示提交代码到版本库,或者暂存区,.代表所有 git commit -m '注释信息' a.py # 把文件提交到本地仓库,后面不跟文件名则为全部提交
其它操作
git commit -a #提交暂存区选中的文件,只需要将需要提交的文件前面的#号去掉,在最上面可以写注释。
git rm --cached a.py # 从暂存区移回工作区 git rm -f a.py # 从暂存区直接删除文件工作区同时也删除
远程仓库
我们上面已经能在本地仓库里管理代码了,但是如果团队开发,怎么配合起来?
我们可以把版本放在互联网上,开发者把自己的最新版本推到线上仓库,同时,把最新版本的代码拉到本地。这样就可以协同工作了。
注册在线仓库账号
提交代码到远程服务器
git remote add test https://gitee.com/ChengJunHua/test.git # 给远程仓库地址取个别名。 git push test # push到远程仓库,如果要提交到某分支需要在后面添加分支名字如:git push test dev git pull abc master # 从远程仓库,某个分支上拉下来
注意:如果出现没有权限之类的报错
生成公钥
添加公钥
查看改动日志
git log # 查看项目日志 git log file # 查看某个文件日志 git log. # 查看本目录日志 git reflog # 查看详细做了什么 git log --pretty==oneline # 一行行显示
版本切换
方式一(不太灵活,建议使用方式二)
git reset --hard "head^" # ^代表回退第几个版本,几个^就回退几个
方式二
git reset --hard b23c1 # 前面使用的是版本id前五位
分支管理
开发时,代码不是提交到master分支上的,每个人都会有自己的分支;master是把所有人提交的代码合并到一起上线用的分支
git branch # 查看分支 git branch dev # 创建分支 git checkout dev # 切换分支 git merge dev # 合并分支
合并分支时需注意,一定要pull下,防止有人提交了代码。
远程服务器配置
git remote # 查看远程仓库 git remote -v # 查看远程仓库详情 git remote remove txt(或者远程地址) # 删除远程仓库 git remote rename 旧名称 新名称 # 修改远程仓库名字
解决无法pull代码
在git pull的时候,如果本地代码有改动,而服务器上代码也已经被其他人更新过,这个时候是无法成功pull的,可以通过以下四个步骤解决。
1. 暂存本地修改 git stash # 将本地所有修改暂时存储起来 git stash list # 查看保存信息 2.pull代码 git pull -rebase # 暂存本地修改之后使用pull git pull ........ 3. 还原暂存内容 git stash pop stash@{0} # 还原暂存内容 如果只有一次 git stash操作,在还原的本地修改时,直接使用 git stash pop 即可 4.解决文件中的冲突部分 如果有文件冲突,冲突地方git会自动指明具体冲突代码,自行修改即可
即将秃头的程序员