Git工具和GitHub的使用
一、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的使用的更多相关文章
- windows中使用Git工具连接GitHub(配置篇)
Git在源码管理领域目前占很大的比重了,而且开源的项目很多都转到GitHub上面了.例如:jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js, ...
- 使用git工具删除github上的文件或者文件夹
解决 使用git工具删除github上的文件或者文件夹 当我们需要从github上删除一些我们不需要的文件或者文件夹时,如果通过github来操作的话,将会很麻烦,因为github只允许删除一个仓库, ...
- 使用Windows下的git工具往github上传代码 踩坑记录
使用Windows下的git工具往github上传代码 踩坑记录 背景 由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己 ...
- 如何使用git工具向github提交代码
大致分为以下几个步骤 安装git环境,工具使用msysgit github上的账号 首先在github上点击头像旁边的加号 add new ,选择new Repository,自己创建一个名字,假设取 ...
- GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟。
GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟. 支持输出多种格式 GitBook支 ...
- 使用git工具将项目上传到github
注册github账号 https://github.com/ 安装git工具: https://git-for-windows.github.io/ 上面的准备工作完成后,现在开始操作. 一.进入gi ...
- 使用git工具快速push项目到github(精简)
Dear Weber ,相信有很多刚开始接触前端的程序猿,在刚接触到git工具传项目到github上时会遇到一些问题,那么下面的话呢,我就整理一下一个大致的思路提供给大家参考: 工具:git (自行下 ...
- 在Windows使用git工具将代码同步至github(作者:ying1989920)
[ps]git是一个分布式代码管理工具,类似于svn,方便协同开发,git里面有所谓的仓库(用来存放代码的),分为本地和线上,线上的你可以自己搭建,不想搭建的话github就给你提供了. [关于 ...
- 代码管理工具:使用github和git工具管理自己的代码
一.git工具和账户创建 1.1 安装 Git 是 Linus Torvalds 最近实现的源代码管理软件."Git 是一个快速.可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系 ...
随机推荐
- vue 中安装使用sass 报错遇到的问题整理
不出错的情况下,正常安装: 1.安装包: npm install node-sass --save-dev npm install sass-loader --save-dev (sass-loade ...
- NumPy 迭代数组
NumPy 迭代数组 NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式. 迭代器最基本的任务的可以完成对数组元素的访问. 接下来我们使用 arange() ...
- Apache+PHP+MySQL环境搭建
准备安装包:Apache: apache_2.2.11-win32.msi (http://pan.baidu.com/s/1nvdiNcH)PHP: php-5.2.5-Win32.zip (htt ...
- css3动画:执行前不显示,执行后显示
今天做一个轮播,轮播图上使用animation.需求是当滚动到当前图片时,图片中的div从无到有逐渐显示, 遇到的问题是:页面刷新时,此图片上的div可以从无到有,但第二次滚动到此图片时,总是先显示一 ...
- mysql 5.6 datetime 保存精确到秒
mysql中的CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP 设置默认值 now(3) datetime 长度 3 保存精确到秒
- 再遇ibatisNet
11年在Mr刘的带领下第一次接触ibatisnet ,当时Mr刘很详细的很讲了xml里的写法还有配置文件之类的,但是随着时间越来越久远.很多东西都开始淡忘了. 如今,再次和它相遇,依然觉得很亲切,虽然 ...
- swift - layer - 渐变色 - CAGradientLayer
1.创建 渐变色 /// 渐变色:默认从上到下 private var gradientLayer: CAGradientLayer = { let g = CAGradientLayer() g.c ...
- day 13 模块
模块 一个py文件,就是一个模块,一个模块是一些相似功能的集合体. # echo.py 定义一个模块. 下文都用这个 print('from echo 模块') name = 'echo' def f ...
- Django中使用django_debug_toolbar
一 概述 django_debug_toolbar 是django的第三方工具包,给django扩展了调试功能. 包括查看执行的sql语句,db查询次数,request,headers,调试概览等. ...
- 访问WebServcie遇到配额不足的时候,请增加配额
常常遇到的报错: 1.错误一: Error in deserializing body of reply message for operation 'GetArticleInfo'.,StackTr ...