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
须要使用比对工具软件
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