git的一些简单用法
1.工作区暂存区和仓库区

工作区
对于添加、修改、删除文件的操作,都发生在工作区中
暂存区
暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分
仓库区
仓库区表示个人开发的一个小阶段的完成
仓库区中记录的各版本是可以查看并回退的
但是在暂存区的版本一旦提交就再也没有了
二 .git单人本地仓库操作
2.1 安装git
sudo apt-get install git
我是用的虚拟机装的ubuntu
2.2 查看装好没有
直接 git就好了
2.3 创建项目
在桌面随便建一个文件夹test表示工作项目
Desktop/test
2.4 创建本地仓库
进入到test,并创建本地仓库.git
新创建的本地仓库.git是个空仓库
cd Desktop/test/
git init

创建本地仓库 .git 后就有

2.5配置个人信息
这一步可配可不配
git config user.name '张三'
git config user.email 'zhangsan@163.com'

2.6 新建py文件
在项目文件test里创建login.py,用于版本控制演示

2.7查看文件状态
红色表示新建文件或者新修改的文件,都在工作区.
绿色表示文件在暂存区
新建的login.py文件在工作区,需要添加到暂存区并提交到仓库区
git status

2.8 将工作区文件添加到暂存区
# 添加项目中所有文件 git add .
或者
# 添加指定文件 git add login.p

2.9将暂存区文件提交到仓库区
commit会生成一条版本记录
-m后面是版本描述信息
git commit -m '立项'

也可以将这两步合为一步,直接 git commit -am '立项'
2.10 查看历史版本
git log 或者 git reflog

2.11 回退版本
方案一:
HEAD表示当前最新版本
HEAD^表示当前最新版本的前一个版本
HEAD^^表示当前最新版本的前两个版本,以此类推...
HEAD~1表示当前最新版本的前一个版本
HEAD~10表示当前最新版本的前10个版本,以此类推...
git reset --hard HEAD^
方案二: 当版本多的时候精确选择
先通过查看版本记录,然后
git reset --hard 版本号

2.12 撤销修改
只能撤销国内工作区、暂存区的代码,不能撤销仓库区的代码
撤销仓库区的代码就相当于回退版本操作
撤销工作区代码
新加代码 num3 = 30 ,不 add 到暂存区,保留在工作区
git checkout 文件名
撤销暂存区代码
新加代码num3 =30 ,并add到暂存区
# 第一步:将暂存区代码撤销到工作区 git reset HEAD 文件名
# 第二步:撤销工作区代码 git checkout 文件名

2.13 删除文件
在项目中新建test.py文件,并添加和提交到仓库
确定删除处理:
# 删除文件 rm 文件名
# git确定删除文件,对比添加文件git add git rm 文件名
# 删除后记录删除操作版本 git commit -m '删除描述'

误删处理: 撤销修改即可
# 删除文件 rm 文件名
# git撤销修改 git checkout -- 文件名

三.git远程仓库
先准备个文件夹,用来克隆项目经理的用manager,其他成员取自己名字或者好识别的
3.1 登录注册github
3.2 创建仓库入口

3.3 编辑仓库信息

3.4 仓库创建完成

3.5查看仓库地址

3.6 经理的工作
立项:克隆远程仓库+配置身份信息+创建项目+推送项目到远程仓库
1。克隆远程仓库的命令
cd Desktop/manager/
git clone https://github.com/zhangxiaochuZXC/test007.git
2.克隆远程仓库到本地
在经理的文件夹下终端输入

3.克隆成功后查看经理的文件

4.配置经理身份信息
cd Desktop/manager/test007/
git config user.name '经理'
git config user.email 'manager@163.com'
5.创建项目

6.推送项目到远程仓库
# 工作区添加到暂存区 git add .
# 暂存区提交到仓库区 git commit -m '立项'
# 推送到远程仓库 git pus


在 push 的时候需要设置账号与密码,该密码则是 github 的账号与密码
如果在每次 push 都需要设置账号与密码,那么可以设置记住密码
设置记住密码(默认15分钟): git config --global credential.helper cache
如果想自己设置时间,可以这样做(1小时后失效): git config credential.helper 'cache --timeout=3600'
长期存储密码: git config --global credential.helper store
Pycharm 可以自动记住密码
张三的工作
获取项目:克隆项目到本地、配置身份信息
1.克隆项目到本地
cd Desktop/zhangsan/
git clone https://github.com/zhangxiaochuZXC/test007.git
2.克隆成功后查看张三的文件

3.配置张三身份信息
cd Desktop/zhangsan/test007/
git config user.name '张三'
git config user.email 'zhangsan@163.com'
4.然后用编译器写代码就好了,写完一个功能就push提交到远程仓库区
最后总结下:
1.要使用git命令操作仓库,需要进入到仓库内部
2.要同步服务器代码就执行:git pull
3.本地仓库记录版本就执行:git commit -am '版本描述'
4.推送代码到服务器就执行:git push
5.编辑代码前要先pull,编辑完再commit,最后推送是push
代码冲突问题:
提示:多人协同开发时,避免不了会出现代码冲突的情况
原因:多人同时修改了同一个文件
危害:会影响正常的开发进度
注意:一旦出现代码冲突,必须先解决再做后续开发
解决冲突
原则:谁冲突谁解决,并且一定要协商解决
方案:保留所有代码 或者 保留某一人代码
解决完冲突代码后,依然需要add、commit、push
补充:
容易冲突的操作方式
多个人同时操作了同一个文件
一个人一直写不提交
修改之前不更新最新代码
提交之前不更新最新代码
擅自修改同事代码
减少冲突的操作方式
养成良好的操作习惯,先pull在修改,修改完立即commit和push
一定要确保自己正在修改的文件是最新版本的
各自开发各自的模块
如果要修改公共文件,一定要先确认有没有人正在修改
下班前一定要提交代码,上班第一件事拉取最新代码
一定不要擅自修改同事的代码
git的一些简单用法的更多相关文章
- [转]git fetch 的简单用法:更新远程代码到本地仓库
[原文地址]:http://my.eoe.cn/com360/archive/3533.html Git中从远程的分支获取最新的版本到本地方式如下,如何更新下载到代码到本地,请参阅ice的博客基于Gi ...
- git fetch 的简单用法:更新远程代码到本地仓库
方式一 1. 查看远程仓库 1 2 3 4 5 6 $ git remote -v eoecn https://github.com/eoecn/android-app.git (fetch) eoe ...
- git fetch 的简单用法:更新远程代码到本地仓库及冲突处理
Git中从远程的分支获取最新的版本到本地方式如下,如何更新下载到代码到本地,请参阅ice的博客基于Github参与eoe的开源项目指南方式一1. 查看远程仓库 1 2 3 4 5 6 $ git re ...
- git diff 的简单使用(比较版本区别)
假如我们修改viewMail.vue 文件(部分代码) 从 //根据ID获取详情 getById () { let that = this; this.viewMailModal = true; th ...
- CATransition(os开发之画面切换) 的简单用法
CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...
- Git和Github简单教程
原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- NSCharacterSet 简单用法
NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...
- [转]Valgrind简单用法
[转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...
随机推荐
- UILabel颜色逐渐变化
@interface UIViewController () @property (weak, nonatomic) IBOutlet UIView *backView; //空间是用storyBoa ...
- AtCoder Beginner Contest 131 F - Must Be Rectangular!
题意:给出二维平面的n个点坐标,定义一种操作:若恰好三个点能形成一个矩形(当然这个矩形会缺了一个点),那么就在图上添加这个缺的点,问在原图上最多能进行几次这样的操作. 解法:这题想了挺久没想到,一看题 ...
- maven打包出现 Error assembling JAR: java.lang.reflect.InvocationTargetException
如果项目的包名使用中文,会反射找不到,idea设置Editor->File Encodings 改utf-8试试
- 【leetcode】998. Maximum Binary Tree II
题目如下: We are given the root node of a maximum tree: a tree where every node has a value greater than ...
- 【NOIP2019模拟2019.11.13】旅行 && GDKOI2018 还念(二分答案+dij)
Description: 题解: 显然满足二分性. 并且每一条边要不选l要不选r. 二分的那条链肯定要选l. 考虑有两个人在走最短路,一个人一开始必须走二分的那条链,要求第一个人走的比第二个人快. 安 ...
- apue 第19章 伪终端
伪终端是指对于一个应用程序而言,他看上去像一个终端,但事实上它并不是一个真正的终端. 进程打开伪终端设备,然后fork.子进程建立一个新的会话,打开一个相应的伪终端从设备.复制输入.输出和标准错误文件 ...
- 【LeetCode 37】解数独
题目链接 [题解] 回溯法搞一下. 用set和数组下标判重. [代码] class Solution { public: set<int> myset[9]; int hang[9][10 ...
- Panel
在Panel上绘图的实现 近期制作了FDS的一个建模工具,由于知识有限,做出的效果是2D的.昨天上课的时候看老师画一个长方体,突然想到,为什么不给普通的2D图形加画上几条直线,就能实现2D图形的3D视 ...
- 送礼物(二分加双向DFS)
题目链接 题意:给你n个礼物重量,给你一个M力量,看你一次性搬动不超过M的礼物重量. 思路:看似背包,但M太大.所以要用DFS,但n也有45,所以考虑双向DFS先搜前半部分满足情况的所有重量,然后去重 ...
- 【Spring Boot】Spring Boot项目部署到外部Tomcat容器
一.修改项目打包方式为war包 修改pom.xml文件中packaging属性项 <packaging>war</packaging> 修改pom.xml文件增加一个依赖 &l ...