Git工具和GitHub的使用

1、Git工具的安装html

1)centos系统下安装linux

1.1)查看环境git

[root@gitlab ~]# rpm -qa centos-release centos-release-7-4.1708.el7.centos.x86_64 [root@gitlab ~]# uname -a Linux gitlab 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 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)

1.2)yum安装,yum 工具github

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

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

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

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

yum install autoconf -y服务器

 

 yum install zlib-devel -yapp

 yum install -y perl perl-develssh

2)Windows下安装curl

  过程略

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) 8323763] git test commit 1 file changed, 2 insertions(+) create mode 100644 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 832376 # 写上前6位就能够了 # 若是关闭了命令行,找不到了版本号 git reflog # 回滚的最后招数,全部的操做记录都显示了,可查看到版本号

6)git 提交代码

git使用帐号: 帐号:user03 密码:123456
====================================== 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 须要输入用户名,密码 

 2、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

 3、开发流程。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
View Code

须要使用比对工具软件

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

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

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

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

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

4、总结

多人开发的工做模式

1、首先,能够试图用git push origin branch-name推送本身的修改; 2、若是推送失败,则由于远程分支比你的本地更新,须要先用git pull试图合并; 3、若是合并有冲突,则解决冲突,并在本地提交; 4、没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功

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

相关文章
相关标签/搜索