安装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版本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 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
新闻热点
疑难解答