一、Git工具的安装

1)centos系统下安装

1.1)查看环境

[root@gitlab ~]# rpm -qa centos-release
centos-release--4.1708.el7.centos.x86_64
[root@gitlab ~]# uname -a
Linux gitlab 3.10.-.el7.x86_64 # SMP Tue Aug :: UTC x86_64 x86_64 x86_64 GNU/Linux
[root@gitlab ~]# getenforce
Disabled
[root@gitlab ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld()

1.2)yum安装,yum 工具

#centos 自带git
[root@gitlab ~]# rpm -qa git
git-1.8.3.1-.el7.x86_64 #安装方法
yum install git -y

1.3)编译安装。建议使用编译安装。自带的git版本较低

git工具下载:https://github.com/git/git/releases

# 安装依赖关系
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# 编译安装
tar -zxf git-2.0..tar.gz
cd git-2.0.
make configure
./configure --prefix=/usr
make
make install

编译安装

yum install autoconf -y

yum install zlib-devel -y

yum install -y perl perl-devel

2)Windows下安装

过程略

2)git命令的基本使用,如显示文件,创建文件

lenvovo@LENVOVO-PC MINGW32 /e/test
$ mkdir git_test # 创建文件夹 lenvovo@LENVOVO-PC MINGW32 /e/test
$ cd git_test/ # 进入文件夹 lenvovo@LENVOVO-PC MINGW32 /e/test/git_test
$ git init # git 初始化,生成 .git下的隐藏文件
Initialized empty Git repository in E:/test/git_test/.git/ lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ cd .git/ # 进入隐藏文件 lenvovo@LENVOVO-PC MINGW32 /e/test/git_test/.git (GIT_DIR!)
$ ls # 显示隐藏文件内容
config description HEAD hooks/ info/ objects/ refs/ lenvovo@LENVOVO-PC MINGW32 /e/test/git_test/.git (GIT_DIR!)
$ cd .. lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ ls -a
./ ../ .git/
lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ cat first_program.py
def sayhi(name):
print("hello world!",name)

基本命令使用

git init   # 初始化文件

3)提交文件

lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ git add first_program.py # 将代码放入暂存区
warning: LF will be replaced by CRLF in first_program.py.
The file will have its original line endings in your working directory.
lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ git commit # 存入暂存区,失败,因为要表明是谁提交的代码 *** Please tell me who you are. Run git config --global user.email "you@example.com"
git config --global user.name "Your Name" to set your account's default identity.
Omit --global to set the identity only in this repository. fatal: unable to auto-detect email address (got 'lenvovo@LENVOVO-PC.(none)')
lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ git config --global user.email "1257063655@qq.com" # 写邮箱名 lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ git config --global user.name "lover" # 写用户名
lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ git commit # 再提交,会弹出一个文件,里面必须添加为什么要提交文件
[master (root-commit) ] git test commit
file changed, insertions(+)
create mode first_program.py lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ git commit # 再提交,显示没有内容需要提交了
On branch master
nothing to commit, working tree clean

提交文件

4)修改文件回滚操作,前提是没有git add

lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory) modified: first_program.py Untracked files:
(use "git add <file>..." to include in what will be committed) readme no changes added to commit (use "git add" and/or "git commit -a") lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ cat first_program.py
def sayhi(name):
print("Hello sb!",name)
print('user')
print('Second change') lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ git checkout first_program.py lenvovo@LENVOVO-PC MINGW32 /e/test/git_test (master)
$ cat first_program.py
def sayhi(name):
print("Hello sb!",name)
print('Second change')

回滚

5)命令总结

git add first_program.py        # 将文件放入暂存区
git add . # 提交整个目录与暂存区
git commit # 如果失败需要要表明是谁提交的代码
git config --global user.email "1257063655@qq.com" # 写邮箱名
git config --global user.name "lover" # 写用户名
会弹出一个文件,里面必须添加为什么要提交文件
git commit -m "second commit test" # 避免弹框,将为什么提交写在后面
git status # 查看文件的状态
git checkout first_program.py # 回滚操作,前提是没有git add,还原到上次提交时的文件 # 提交之后的回滚
git log # 查看提交的日志
git log --pretty=oneline # 忽略不重要的信息
git reset --hard HEAD^ # 回滚到上一次提交时
git reset --hard 8323763f7b5dfd365f593fb724346ce692bdc258 # 回滚到指定的版本号
git reset --hard # 写上前6位就可以了
# 如果关闭了命令行,找不到了版本号
git reflog # 回滚的最后招数,所有的操作记录都显示了,可查看到版本号

6)git 提交代码

git使用账号:
账号:user03
密码:
======================================
mkdir -p /root/user_git
cd /root/caojin_git/
git clone http://192.168.1.5/ODW/ProjectD_svr.git
cd ProjectD_svr
git checkout trunk 从线上拉取分支代码 每天第一次执行的操作
cd /root/user_git/ProjectD_svr/
git pull 从服务器更新代码到本地
=============================
# 修改代码后
git status 查看差异文件
git diff 文件
===对比无误
git add test.py git commit -m "add test" 提交
第一次提交时
git config --global user.email "11111111@qq.com"
git config --global user.name "user03"
再进行git commit
git push
需要输入用户名,密码

二、github的使用

1)创建好账号后,创建项目

2)创建好项目后。操作提示

3)克隆创建的项目代码

使用https的方式

4)修改代码后上传至GitHub仓库

上传代码步骤总结

git clone https://github.com/xxxx/xxxxxxx    # 克隆代码到本地
修改文件之后
git add .
git commit -m "first_commit"
git config --global user.email "125@qq.com"
git config --global user.name "you name"
git push -u origin master # 上传至远程仓库
输入用户名
输入密码

5)将已有的本地仓库推送到GitHub仓库中

在本地git仓库里面执行的操作都将上传至GitHub

git remote add origin https://github.com/xxxx/xxxxxxx
git push -u origin master

6)使用秘钥的方式

先在本地生成秘钥

再将秘钥内容拷贝到GitHub的setting里面:deploy keys里只对该仓库有效

SSH and GPG keys对所有仓库有效:new ssh key

7)做了秘钥之后,可以使用ssh克隆GitHub仓代码

git clone git@github.com:xxxx/xxxxxxx
修改文件
git add .
git commit -m "change on linux"
git push origin master

三、开发流程。GitHub的分支管理

1)分支使用流程

创建了分支之后,提交会显示分支出来。

分支使用流程总结

git checkout -b dev        # 创建dev分支
git branch # 查看分支
* dev # *,当前分支
master 主分支
提交......
git push origin dev # 提交到自己的分支上 git checkout master # 切换到 主分支
git branch # 查看分支
dev
* master # 当前是在主分支

2)分支与主库合并代码

在主库上
git pull 更新主库代码
Already up-to-date
git merge dev # 合并分支的代码
只能合并没有相同的文件,有相同的文件,就有冲突 git status # 查看主库和分支代码不一样的地方
both modified : first_program.py # 该文件都修改了
vim first_program.py # 查看文件差异,解决冲突
def sayhi(name):
....
<<<<< HEAD
主库代码
=======
都有的代码
>>>>> dev
分支代码
git add .
git commit -m "test"
git push origin master

需要使用比对工具软件

3)如果主库已经更新,分支继续开发新代码,合并时也需要处理冲突问题

4)保存当前环境的工作代码

git stash         # 把当前工作环境临时保存
git stash apply # 恢复之前保存的临时工作
git stash list # 查看临时保存的列表
git stash drop # 删除当前临时保存的环境备份
git stash pop # 恢复并删除临时保存的备份

5)编辑不想维护,不想上传的代码

vim .gitignore    # 编辑忽略不想要的上传的文件

四、总结

多人开发的工作模式

、首先,可以试图用git push origin branch-name推送自己的修改;
、如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
、如果合并有冲突,则解决冲突,并在本地提交;
、没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功

原来链接:https://www.cnblogs.com/alex3714/articles/5930846.html

Git工具和GitHub的使用的更多相关文章

  1. windows中使用Git工具连接GitHub(配置篇)

    Git在源码管理领域目前占很大的比重了,而且开源的项目很多都转到GitHub上面了.例如:jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js,  ...

  2. 使用git工具删除github上的文件或者文件夹

    解决 使用git工具删除github上的文件或者文件夹 当我们需要从github上删除一些我们不需要的文件或者文件夹时,如果通过github来操作的话,将会很麻烦,因为github只允许删除一个仓库, ...

  3. 使用Windows下的git工具往github上传代码 踩坑记录

    使用Windows下的git工具往github上传代码 踩坑记录 背景 由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己 ...

  4. 如何使用git工具向github提交代码

    大致分为以下几个步骤 安装git环境,工具使用msysgit github上的账号 首先在github上点击头像旁边的加号 add new ,选择new Repository,自己创建一个名字,假设取 ...

  5. GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟。

    GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟. 支持输出多种格式 GitBook支 ...

  6. 使用git工具将项目上传到github

    注册github账号 https://github.com/ 安装git工具: https://git-for-windows.github.io/ 上面的准备工作完成后,现在开始操作. 一.进入gi ...

  7. 使用git工具快速push项目到github(精简)

    Dear Weber ,相信有很多刚开始接触前端的程序猿,在刚接触到git工具传项目到github上时会遇到一些问题,那么下面的话呢,我就整理一下一个大致的思路提供给大家参考: 工具:git (自行下 ...

  8. 在Windows使用git工具将代码同步至github(作者:ying1989920)

     [ps]git是一个分布式代码管理工具,类似于svn,方便协同开发,git里面有所谓的仓库(用来存放代码的),分为本地和线上,线上的你可以自己搭建,不想搭建的话github就给你提供了. [关于 ...

  9. 代码管理工具:使用github和git工具管理自己的代码

    一.git工具和账户创建 1.1 安装 Git 是 Linus Torvalds 最近实现的源代码管理软件."Git 是一个快速.可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系 ...

随机推荐

  1. 179. Largest Number(INT, String)

    Given a list of non negative integers, arrange them such that they form the largest number. For exam ...

  2. Python+Selenium学习--上传文件

    场景 文件上传操作也比较常见功能之一,上传功能操作webdriver 并没有提供对应的方法,关键上传文件的思路.上传过程一般要打开一个系统的window 窗口,从窗口选择本地文件添加.所以,一般会卡在 ...

  3. 约束布局 ConstraintLayout

    app:layout_constraintVertical_bias="0.5"app:layout_constraintHorizontal_bias="0.5&quo ...

  4. oracle中获取当前整点和上一个小时整点,日期类型

    select to_date(to_char(sysdate,'yyyy-mm-dd hh'),'yyyy-mm-dd hh:mi:ss') from dual;select to_date(to_c ...

  5. UVa 548 Tree(二叉树最短路径)

    You are to determine the value of the leaf node in a given binary tree that is the terminal node of ...

  6. Python词云(词频统计,掩膜显示)

    Python2.7 anaconda.安装Wordcloud,网上有许多下载路径,说一下掩模,就是在这个膜的区域才会有东西,当然这个与实际的掩模还有一定区别,这个词频显示是把所有统计的词,显示在这个掩 ...

  7. 将tomcat做成windows服务

    @参考文章 大致步骤: 1,配置环境变量(选读) 2,安装 3,卸载(选读) 配置环境变量: 这块不是必须的.我不喜欢给tomcat配置环境变量,默认即可.如需要配置可看参考文章,也可参考我之前的文章 ...

  8. Spring Cloud入门教程(二):客户端负载均衡(Ribbon)

    对于大型应用系统负载均衡(LB:Load Balancing)是首要被解决一个问题.在微服务之前LB方案主要是集中式负载均衡方案,在服务消费者和服务提供者之间又一个独立的LB,LB通常是专门的硬件,如 ...

  9. swift - 闭包 -定义和使用

    方法一: 1.定义 typealias OpenOrderSuccessResultBlock = ( _ dataArray:[String])->Void 2.类方法实现属性 var bac ...

  10. Java 枚举类 详解

    1.枚举是什么? Java中的枚举其实是一种语法糖,在 JDK 1.5之后出现,用来表示固定且有限个的对象.比如一个季节类有春.夏.秋.冬四个对象:一个星期有星期一到星期日七个对象.这些明显都是固定的 ...