git相关命令
本地仓库操作
-初始化仓库 git init
对仓库进行初始化,会生成一个隐藏的目的.git,代表当前文件夹是一个git仓库,当前目录是一个工作区,能对文件夹里的文件放入仓库暂存区.历史区
-查看当前状态 git status
能够查看工作区是否有修改的文件,暂存区是否有没提交的文件
-提交文件到暂存区 git add
git add 文件名(要加后缀)or文件夹名/ git add .(全部提交)/git add *.后缀名(提交所有后缀为*的文件)
红色表示当前版本有文件被修改,还没提交
绿色表示当前版本有文件被修改,还没提交
-放弃对文件的修改 git checkout
git checkout -- 文件名(一定要加--),不加代表切换分支
-删除暂存区文件 rm
rm 文件名
可以使用git checkout -- 文件名 ,对被删除文件进行恢复
-提交到本地仓库 git commit -m”注释”
提交到本地版本库后,再次查看状态,暂存区已经清空
-查看历史版本 git log/git reflog
-退回本地的历史版本 git reset --hard 版本号(可以写前7位)
推送到远程仓库
-本地仓库与远程仓库关联(gitee) git remote add origin 远程仓库地址(.git结尾)
-把项目推送到远程仓库 git push -u origin master(推送到默认分支)
推送到其他分支 master:test1(代表从本地仓库master分支推送到远程仓库test1分支)
本地分支:远程仓库分支(没有的话会自动创建)
远程仓库克隆/更新操作
-克隆远程库 git clone 远程仓库地址
把远程仓库克隆到本地后,该文件夹就带有所有的版本信息,可以切换版本
默认获取到的版本是master分支里的最新版本,可以通过git log查看历史版本并且回滚
-克隆分支,git clone -b 分支名 仓库地址
-更新远程仓库master默认分支的版本
输入命令git pull origin master(更新默认分支)
-更新其他分支的版本
输入命令 git pull origin test1:master(代表从远程仓库的test1分支下载到本地仓库master分支)
从其他分支更新版本的时候一定要加上分支路径 远程仓库分支:本地分支
python+git实现代码管理
git(分布式版本控制,支持离线,可存在本地)/svn(集中式版本控制,需要连接服务器)
版本控制的作用:
1,版本回滚,回到之前稳定的版本
2,版本追踪,记录代码编写的人员和时间
github/gitlab(代码托管平台)/gitee(码云)
基于git工具的网站,把本地代码存放到这些网站
流程:修改本地代码->使用git存放到本地->同步( git push)到远程仓库(gitee)->更新到本地(git pull/git clone)
-加入.gitignore文件,忽略版本系统可以忽略的文件
表示忽略指定的文件夹和文件(如账号密码等),上传的时候不会上传这些文件和文件夹
-初始化本地仓库
cd命令进入对应的目录,从该目录初始化本地仓库,代表要管理该目录下所有文件
命令行输入git init
目录下面生成了一个.git的隐藏文件夹,代表当前文件夹已经变成一个本地的git仓库,该目录下的所有新增 修改后都会把记录保存到该隐藏文件夹中
-查看该仓库下文件的状态
命令行输入 git status
红色表示还没被追踪,没被放到缓存区域
-加入仓库缓存区(加购物车)
命令行输入git add 文件名
再次用git status查看当前仓库状态
绿色代表该文件已经放入缓存区,但是还没正式提交,相当于加入购物车
把所有文件都加入缓存区
命令行输入git add .
-提交到本地仓库,正式创建版本
命令行输入git commit -m”提交时候的信息V1,V2..”
再次查看仓库状态时候,会提示缓存区的文件都被提交
每次修改后,修改的文件都会重新变成红色,需要再次提交,变成新的版本
提交到远程仓库
需要托管平台账号和密码,平台的地址
创建仓库
得到仓库的地址
-本地仓库关联远程仓库
-提交版本到远程仓库
命令行输入 git push -u origin master(上传到默认分支)
从远程仓库下载
git clone 仓库地址(没有本地仓库,需要先克隆下来,或者自己使用命令git init初始化仓库)
更新版本git pull origin master(从其他分支下载到本地默认分支参考上面git基本命令)
如果没有初始化仓库需要先执行git init命令
关联远程仓库(已经拥有本地仓库,可以直接覆盖更新)
git log/git reflog
下载之后可以用git log查看项目的所有版本,并且能回滚
git 冲突
原因:远程仓库的同样文件同一行代码,和本地仓库代码不一样,同步的时候会发生冲突
解决办法:
<<<:本地代码 >>>:远端代码
把想要的代码留下,其他东西都删除,告诉服务器需要哪个版本 再次提交
每次更新项目到远程仓库,最好从创建项目(第一次初始化本地仓库),第一次提交到仓库的文件夹上传,不然会出现冲突,或者更新到远程仓库的新分支
如果需要在新的文件夹中对远程仓库已有的分支的项目进行更新,最好先clone分支到新文件夹,进行修改后再次提交更新,
不要在新建文件夹中初始化本地仓库 之后操作完更新到远程仓库的已有分支,否则会出错