首页 > 学院 > 开发设计 > 正文

Git服务器的搭建和基本使用

2019-11-08 02:20:07
字体:
来源:转载
供稿:网友

Git服务器的搭建和基本使用

Windows平台的Git服务器

安装

下载Windows下的git或Git for Windows,并安装。下载Windows下的Open SSH Copssh_4.1.0

配置

SSH的配置

安装Git是为了在本地创建或管理git仓库,同时支持其他网络访问该计算机的git仓库。这里采用SSH协议作为Git的网络通信协议,安装Copssh后需要进行简单的配置,这通过开始菜单下的Copssh->01. COPSSH Control Panel进行。添加用户,选择Shell类型为linux shell and Sftp,authentication类型选择PassWord和Public Key,并且选中Allow TCP forwarding选项。

此时可以从本机登录本地的ssh服务:

ssh localhost

为了让网络中其它计算机通过ssh登录,还需要修改Windows的防火墙设置,将sshd.exe添加到允许程序通过Windows防火墙通信列表中。

此时,如果我们尝试clone服务器上的git仓库,会遇到如下问题:

bash: git-upload-pack: command not found fatal: Could not read from remote repository.

这是因为在ssh服务找不到实现git传输协议的git-upload-pack工具,即这个工具不在PATH中,通过如下命令可以查看:

ssh user@remotemachine echo $PATH

将git-upload-pack所在的目录添加到PATH中,可以在user主目录下的.bashrc文件中添加:

GITPATH=`cygpath -u ‘/path/to/git-core’` EXPORT PATH=$GITPATH:$PATH

Git的配置

另一个需要注意的是中文编码的配置,当Git版本1.7以后采用UTF8编码文件名,为了同时在Windows和Linux上运行,需要注意如下配置: 1. 中文文件名

git config –sytem core.quotepath false

如果只针对特定项目设置,可以去掉–sytem,如果只针对特定用户的全局设置,将–system改为–global。 2. 界面的编码

git config –sytem gui.encoding utf-8

指定git-gui和gitk等界面显示时所采用的编码,默认为locale编码,同时也可以被各个文件的属性设置覆盖。 3. 注释的编码

git config –system i18n.commitEncoding GB2312

提交的注释编码,在Windows上设置为GB2312,在Linux上设置为UTF8

git config –system i18n.logOutputEncoding GB2312

在运行git log等命令时的将注释转换到的编码,通常和commitEncoding的编码一致。

gitconfig的选项、取值和含义可以通过man查看:

man git-config

Git的基本使用

基本概念

基本概念

refstreeparentcommitobjectHEADtagreflog

区域

存档库(Stash) 当修改别的东西的时候,隐藏(临时保存)当前的修改工作区(Work Space) 本地检出暂存区(索引)(Index) 索引(暂存区)保存了一份工作(树)的快照,作为下次提交的内容本地版本库(Local Repository) .git文件夹保存版本库需要的全部信息(Git版本库的骨架),一般包括分支master, feature-x, bugfix-y等上游版本库(Upstream Repository) 在网络上共享给其它开发者的版本库, 一般叫做”origin”, 一般包括分支master, shared-feature-x, release-y

简单的使用

创建版本库

git init demo

用init创建的版本库,默认是带工作区的,如果创建一个不带工作区,用作备份的版本库可以使用–bare选项:

git init demo.git –bare

克隆一个版本库

git clone /path/to/demo.git

添加文件并提交

git add file git commit -m “comment”

查看当前工作区修改

git status [-s]

查看历史提交日志

git log [–graph]

更新工作区文件

git checkout

调整提交

git reset git rebase git cherry-pick git commit

比较、重命名、删除

git diff git mv git rm git clean [-nd] [-fd]

查看对象类型等

git ls-files git cat-file git rev-parse git rev-list

存档和恢复

git stash save git stash list git stash pop git stash apply git stash show git stash drop git stash clear

与其他版本库同步

git pull git push

其它参考资料

GitHub Cheet SheetInteractive Git Cheet SheetGit Documentation
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表