[Linux] Git: 基本使用
Git 属于分布式版本控制系统( Distributed Version Control System,简称 DVCS )客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。你可以根据需要设定不同的协作流程。
Git 的基本工作流程:
1. 在工作目录中修改某些文件。
2.
对这些修改了的文件作快照,并保存到暂存区域。
3. 提交更新,将保存在暂存区域的文件快照转储到 git 目录中。
Git简单使用
// 创建服务器代码仓库
sudo useradd git
sudo passwd git
sudo mkdir -p /var/git.server/project1
cd /var/git.server
sudo chown
git project1
sudo chgrp git project1
// 建立忽略
cd project1
$ cat > .gitignore << end
>
*.[oa]
> *.so
> *~
> !a.so
> test
> tmp/
>
end
sudo su git
sudo git --bare init
// 客户端使用
// 从服务器克隆代码库
git clone [email protected]:/var/git.server/project1
project1
git add a.txt // 添加新增文件
git add .
// 添加新增文件
git commit -am "New Commit" // 提交版本
git commit --amend -am
"Rename New Commit" // 重新提交,更改注释
git checkout -b abeen // 创建abeen分支
git branch
//
查看所有分支
git checkout master // 切回master分支
git merge abeen
//
合并abeen分支到master
git pull origin master// 从服务器刷新最新代码
git push origin master//
将代码刷新到服务器
git reset HEAD^
// 恢复到上次提交状态(HEAD^、HEAD~4、commit-id、tag)
git status
// 查看当前track状态
git log
// 查看提交日志
git log -3
// 查看最后三条提交日志
git log -3 --stat
// 显示简单的统计信息
git log -l -p
// 显示修改的详细信息
// 阶段性版本
git tag v0.9 // 创建标签
git tag
// 显示所有标签
git log v0.9 // 用标签显示提交状态
git show --stat v0.9 //
用标签显示提交基本信息
git rm filename
// 删除代码库里的文件
git checkout HEAD^ -- filename // 恢复文件
git rm --cache
filename //
只从代码库删除文件,工作目录文件成未跟踪状态
git checkout HEAD^ -- filename //
签出以前的某个版本
git mv filename dirname
// 移动文件
git show filename
// 查看某个提交版本的具体信息
git diff HEAd^ filename
// 比较版本差异
git reset -hard commit_id //恢复之前版本
远程仓库
git remote // 查看当前远程库
git remote -v (verbose简写)// 显示对应的克隆地址
git remote add [shortname] [ulr] // 添加远程仓库
git fetch [remote-name] // 获取远程仓库信息
git push origin master // 推送数据到远程仓库
git remote show [remote-name] // 显示远程仓库信息
git remote rename pb paul // 修改远程仓库对应名称
git remote rm paul // 删除远程仓库
---------------------------------------------
更多内容请参考《Pro Git》
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。