一、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. 把图片上的文字转换成word文字?

    转换后的文字不是很如意,但是免费方便. 1.打开Office办公软件自带的OneNote工具.随便新建一个笔记页面,以方便我们接下来的操作. 2.插入图片.在菜单栏里点击[插入],选择插入[图片],找 ...

  2. zabbix 短信报警

    使用的短信平台是云片网,接口请看官网短信接口API文档,有示例 进入server服务器存放脚本的文件夹,默认路径是 [root@test zabbix]# cat zabbix_server.conf ...

  3. poj1850(组合数)

    题目链接:http://poj.org/problem;jsessionid=B0D9A01EC0F1043088A37454B6CED469?id=1850 题意:给字符串编号,该字符串必须满足由小 ...

  4. leetcode题库解答源码(python3)

    下面和大家分享本人在leetcode上已经ace的题目源码(python3): 本人会持续更新!- class Leetcode_Solution(object): def twoSum_1(self ...

  5. Python+Selenium学习--窗口切换及操作元素

    场景 有时候我们在测试一个web 应用时会出现多个浏览器窗口的情况,在selenium1.0 中这个问题比较难处理.webdriver 提供了相关相方法可以很轻松的在多个窗口之间切换并操作不同窗口上的 ...

  6. 转)VCSA 6.5重启无法访问,报错“503 Service Unavailable”的解决方法

    1. 问题 重启vcenter,登陆vsphere client,提示 “503 Service Unavailable (Failed to connect to endpoint: [N7Vmac ...

  7. [LeetCode_98]Validate Binary Search Tree

    题目链接 https://leetcode.com/problems/validate-binary-search-tree/ 题意 判断给定树是否是BST 思路 根据定义判断.递归. 代码 clas ...

  8. Django的auth【认证】模块简介

    首先我们先来复习一下路由别名如何使用,这里仅仅复习一下二级路由的路由别名该如何使用 ·1.在视图函数中使用二级路由别名,需要加上app的名称+“:”+ “路由别名” from django.urls ...

  9. task 定时设置

    每天凌晨2点  0 0 2 * * ?和每天隔一小时 0 * */1 * * ? 例1:每隔5秒执行一次:*/5 * * * * ? 例2:每隔5分执行一次:0 */5 * * * ? 在26分.29 ...

  10. exercise 1-6

    [买菜] package Practice06; import java.io.File; import java.io.FileNotFoundException; import java.util ...