飘易博客(作者:Flymorn)
订阅《飘易博客》RSS,第一时间查看最新文章!
飘易首页 | 留言本 | 关于我 | 订阅Feed

Git版本控制工具的源码安装方式和使用

Author:飘易 Source:飘易
Categories:Linux技术 PostTime:2016-6-2 14:03:59
正 文:
Git版本控制本地安装

学习资料:
版本2:https://git-scm.com/book/zh/v2/
版本1:http://iissnan.com/progit/

*安装
打开 https://git-scm.com/download/win 目前最新版本2.8.3
下载 64-bit Git for Windows Setup 或者 32-bit Git for Windows Setup

安装选项
•在 Select Components 中,选定 Use a TrueType font in all console window (not only for Git Bash)
•在 Adjusting your PATH environment 中,选定 Run Git from the windows Command Prompt
•其他选项保留缺省值

设置用户名称与邮件
git config --global user.name "Piaoyi"
git config --global user.email piaoyi@gmail.com

Windows 下的 Git 设置Sublime Text 2为默认编辑器
git config --global core.editor "'C:\Program Files\Sublime Text 2\sublime_text.exe' -w"

解决git status 中文乱码
git config --global core.quotepath false

生成 SSH 公钥,路径一般在 C:\Users\登陆用户名\.ssh,把生成的公钥 id_rsa.pub 发送给Git服务器管理员
ssh-keygen

本地如何使用Git?

一、新项目联系Git服务器管理员开通一个git裸仓库。

二、本地首次初始化
cd myproject #到实际本地目录里
git init
git add .
git commit -m 'initial commit'
git remote add origin git@git.jinyiyun.net:/home/git/test.git
git push origin master

三、其他人克隆、推送:
git clone git@git.jinyiyun.net:/home/git/test.git
cd test
vim README
git commit -am 'fix for the README file'
git push origin master

四、设置本地分支跟踪远程分支
git branch --set-upstream-to=origin/master master

五、检查项目根目录 .gitignore 文件(若无则创建),排除不需要版本控制的文件夹/文件
GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表,你可以在 https://github.com/github/gitignore 找到它。
简单介绍:https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%AE%B0%E5%BD%95%E6%AF%8F%E6%AC%A1%E6%9B%B4%E6%96%B0%E5%88%B0%E4%BB%93%E5%BA%93


----------------------------------------------------------------------
Git版本控制服务器端安装for CentOS 6.5 64位】:

如果直接yum安装,那么centos 6.5的默认源里的git版本是 1.7.1,比较老旧:
yum install git

所以建议大家采用从源代码安装最新版本git,目前最新版本是2.8.3:

从源码安装 Git,需要安装 Git 依赖的库:curl、zlib、openssl、expat、libiconv:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker

支持更多格式的文档(如 doc, html, info),需要安装以下的依赖包
yum install asciidoc xmlto docbook2x

下载git最新版本
先查看最新版本(网址https://www.kernel.org/pub/software/scm/git),当前为 git-2.8.3.tar.gz :
cd /usr/src
wget https://www.kernel.org/pub/software/scm/git/git-2.8.3.tar.gz
tar -xzf git-2.8.3.tar.gz
cd git-2.8.3
make configure
./configure --prefix=/usr/local/git
make all doc
make install install-doc install-html
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc

查看版本号
git --version

git-shell位置:
/usr/local/git/bin/git-shell


创建用户:git 
步骤:
adduser git #默认家目录 /home/git/
mkdir /home/git/.ssh
touch /home/git/.ssh/authorized_keys #创建
添加各用户的公钥 id_rsa.pub 到上述文件中。

修改 /home/git 目录用户组权限
chown -R git:git /home/git

修改git用户的默认shell权限
vi /etc/passwd
git:x:500:500::/home/git:/bin/bash

改成
git:x:500:500::/home/git:/usr/local/git/bin/git-shell


服务器初始化一个不包含工作目录的裸仓库
cd /home/git
mkdir test.git
cd test.git
git --bare init


----------------------------------------------------------------------
Git常用的命令语句

在现有目录中初始化仓库
git init
git add *
git add *.c
git commit -m 'initial project version'


提交更新
方法1: 增改的文件必须先 git add
git commit #会启动编辑器输入
git commit -m 'added new benchmarks'  

方法2:加上 -a 选项,自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
git commit -a -m 'added new benchmarks' 


移除文件
从快照和本次磁盘里删除
git rm PROJECTS.md 
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

仅删除快照里的,不删除本地磁盘里的
git rm --cached PROJECTS.md

git rm log/\*.log  #删除 log/ 目录下扩展名为 .log 的所有文件
git rm \*~  #删除以 ~ 结尾的所有文件


移动文件
在 Git 中对文件改名
git mv file_from file_to

查看提交历史
git log
git log -p -2  #显示最近2次提交的内容差异
git log --pretty=oneline
git log --pretty=format:"%h - %an, %ar : %s"


撤消操作 选项 --amend
git commit -m 'initial commit'
git add forgotten_file
git commit --amend
只会有一个提交 - 第二次提交将代替第一次提交的结果。

取消暂存的文件
git reset HEAD <file>

撤消对文件的修改
git checkout -- <file>
危险!对文件做的任何修改都会消失 - 只是拷贝了另一个文件来覆盖它

查看远程仓库
git remote
git remote -v
git remote show origin

添加远程仓库
git remote add <shortname> <url>  #若不设置shortname,默认为origin
git remote add pb https://github.com/paulboone/ticgit

从远程仓库中抓取与拉取
git fetch [remote-name] 
示例:git fetch origin

使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写
git fetch origin #会抓取克隆(或上一次抓取)后新推送的所有工作。

git pull #自动的抓取然后合并远程分支到当前分支

推送到远程仓库
git push [remote-name] [branch-name]
示例:git push origin master # 将 master 分支推送到 origin 服务器

远程仓库的移除与重命名
git remote rename pb paul #重命名
git remote rm paul #移除

----------------------------------------------------------------------

列出标签 (标记发布结点 v1.0 等)
git tag
git tag -l 'v1.8.5*'

创建标签
git tag v1.4-lw # 轻量标签,不保存任何其他信息
git tag -a v1.4 -m 'my version 1.4' # 附注标签,指定 -a 选项
git show v1.4 #查看

后期补打标签
git tag -a v1.2 9fceb02 # 末尾指定提交的校验和(或部分校验和)

共享标签
git push origin [tagname]
git push origin v1.5

把所有不在远程仓库上的标签全部传送到远程仓库
git push origin --tags

检出标签
git checkout -b [branchname] [tagname]
git checkout -b version2 v2.0.0


Git 别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --' #取消暂存文件
git config --global alias.last 'log -1 HEAD' #最后一次提交

----------------------------------------------------------------------

分支创建
git branch testing

分支切换
git checkout testing #分支切换会改变你工作目录中的文件

新建一个分支并同时切换到新分支上,-b 参数
git checkout -b iss53

删除分支
git branch -d hotfix

合并分支 merge
git checkout master
git merge hotfix  #合并分支hotfix到主分支master

遇到冲突时的分支合并
<<<<<<< , ======= ,  >>>>>>>
git add <file>
git status
git commit

分支管理
git branch #当前所有分支
git branch -v
git branch --merged
git branch --no-merged


远程分支
git ls-remote (remote)
git remote show (remote)
git remote show origin 

推送分支
git push (remote) (branch)
git push origin serverfix
git push origin serverfix:serverfix

抓取新的远程跟踪分支
git fetch origin

合并到当前所在的分支
git merge origin/master
git merge origin/serverfix

跟踪分支
# 在一个跟踪分支上输入 git pull,Git 能自动地识别去哪个服务器上抓取、合并到哪个分支。
git checkout -b [branch] [remotename]/[branch]
git checkout --track origin/serverfix  # 快捷方式--track,等同于上个命令

要在自己的 serverfix 分支上工作,可以将其建立在远程跟踪分支之上
git checkout -b serverfix origin/serverfix

设置已有的本地分支跟踪一个刚刚拉取下来的远程分支,或者想要修改正在跟踪的上游分支,你可以在任意时间使用 -u 或 --set-upstream-to 选项
git branch -u origin/serverfix 或
git branch --set-upstream-to=origin/<branch> master

查看设置的所有跟踪分支
git branch -vv #本地缓存的服务器数据
git fetch --all; git branch -vv  #统计最新的领先与落后数字

拉取
git fetch
git pull  #相当于 git fetch; git merge 不建议用

删除远程分支
git push origin --delete serverfix

----------------------------------------------------------------------
变基
git checkout experiment
git rebase master
git rebase --onto master server client #选中在 client 分支里但不在 server 分支里的修改,将它们在 master 分支上重演

git rebase [basebranch] [topicbranch] 
git rebase master server

变基的风险
[不要对在你的仓库外有副本的分支执行变基]
只对尚未推送或分享给别人的本地修改执行变基操作清理历史,从不对已推送至别处的提交执行变基操作!

----------------------------------------------------------------------

贡献代码-提交准则

git diff --check # 空白错误检查

信息应当以少于 50 个字符(25个汉字)的单行开始且简要地描述变更,接着是一个空白行,再接着是一个更详细的解释。 
Git 项目要求一个更详细的解释,包括改动的动机和它的实现与之前行为的对比 - 这是一个值得遵循的好规则。 在这些信息中使用现在时态祈使语气也是一个好想法。


----------------------------------------------------------------------
Linux的相关命令:

切换用户
su newuser 只切换身份,但Shell环境仍然是原来用户的Shell
su - newuser 同时切换身份和Shell环境
环境变量
echo $PATH
当前用户工作目录
pwd
更改密码
passwd username
删除用户
userdel username

用户列表文件:cat /etc/passwd
用户组列表文件:cat /etc/group
查看系统中有哪些用户:cut -d : -f 1 /etc/passwd
查看可以登录系统的用户:cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
查看某一用户:w 用户名
查看登录用户:who
查看用户登录历史记录:last

ls -A 列出所有条目,除了 .(点)和 ..(点-点)。
ls -a 列出目录中所有项,包括以 .(点)开始的项。
作者:飘易
来源:飘易
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
上一篇:没有了
下一篇:linux screen 命令使用说明
0条评论 “Git版本控制工具的源码安装方式和使用”
No Comment .
发表评论
名称(*必填)
邮件(选填)
网站(选填)

记住我,下次回复时不用重新输入个人信息
© 2007-2019 飘易博客 Www.Piaoyi.Org 原创文章版权由飘易所有