一、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. BP神经网络学习

    人工神经元模型     S型函数(Sigmoid) 双极S型函数 神经网络可以分为哪些? 按照连接方式,可以分为:前向神经网络 vs. 反馈(递归)神经网络 按照学习方式,可以分为:有导师学习神经网络 ...

  2. 第十章 优先级队列 (xa2)左式堆:合并

  3. CentOS 下lvm 磁盘扩容

    打算给系统装一个oracle,发现磁盘空间不足.在安装系统的时候我选择的是自动分区,系统就会自动以LVM的方式分区.为了保证系统后期的可用性,建议所有新系统安装都采用LVM,之后生产上的设备我也打算这 ...

  4. FortiGate基本信息

    1.介绍 FortiGate是全新的下一代防火墙,在整个硬件架构和系统上面都有新的设计,在性能和功能上面都有了很大提升,具有性能高.接口丰富.功能齐全.安全路由交换一体化.性价比高等优势. Forti ...

  5. java ATM模拟程序

    //基本功能已经完善,文件读取没有问题,文件重写尚未完成. Account类 public class Account { //初始化参数 private String accountID; priv ...

  6. win下svn常用操作笔记

    svn基本命令 checkout 检出 把服务器代码下载到本地一份update 更新 把服务器上的最新代码更新到本地commit 提交 把本地代码提交到服务器上 win下svn的客户端工具Tortoi ...

  7. sqlserver数据库的分离与附加

    当我们一台电脑上创建了数据库想要转移到另外一台电脑上时,由于数据库处于联机状态,不能够对数据库文件进行复制和迁移,所以我们可以将数据库从服务器上分离出去,这样我们就可以复制数据库文件了.然后将数据库文 ...

  8. JFinal Web开发学习(八)后台集成H-ui-admin前端框架

    h-ui-admin是一个很不错的前端框架h-ui实现的一个后台管理系统的前端. 1.在WebRoot目录下新建admin目录 2.下载h-ui-admin(当前最新是2.5版本)并解压至admin文 ...

  9. Java运算符号,对象赋值,别名

    生活发生的一切,才会促使着我继续前行,今天继续更新哦,看书中的代码练习. 例子1  引入net.mindview.util.Print.* ,方便打印结果. package com.date0529; ...

  10. 如何提高php应用的性能?

    1. 如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍.2.$row[’id’] 的速度是$row[id]的7倍.3.echo 比 print快,并且使用echo的 ...