出处大神git_git简介
一、什么是GitGit是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直
一、什么是Git
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 很多 Freedesktop 的项目迁移到了 Git 上。
二、Git和SVN的区别
传统版本集中式控制系统,与中央服务器进行交互版本控制。
分布式版本控制,将database同步到本地,防止中央服务器瘫痪的时候无法备份文件。
通过以上两图的比较我们可以看出,两者的主要区别在于:
SVN主要存储的是文件中的差异,而Git是备份完整的文件。
此外:
1、Git是分布式的SCM,SVN是集中式的
2、Git每个历史版本存储完整的文件,SVN存储文件差异
3、Git可离线完成大部分操作,SVN则相关
4、Git有着更优雅的分支和合并实现
5、Git有更强的撤销修改和修改版本历史的能力
6、Git速度更快、效率更高
三、Git的三个级别
local>global>system 本地仓库>当前用户>system
三种方式查看git文档:
git config --help
git help config
man git -config
以下命令配置每次提交的用户信息
git config --global user.name XXXXX
git config--global user.email XXXXX
config的增加:
git config --global --add user.name shaw
git config --global --add user.email xxxxx@qq.com
config的查看:
git config --get user.name
git config--list --global
config的删除:
git config --global --unset user.name
当user.name为多个的时候,user.name后面要制定相对应的名称
config的修改:
git config --global user.name xxxx
另外config还可以重新命名命令行:
比如我们要给重新命名一下命令git log --oneline --decorate --graph --all
则可以输入:
git config --global alias.lol "git log --oneline --decorate --graph --all"
这样下次只要输入 git lol 就可以达到输入之前命令的效果了。
四、Git的工作流程
Git有三个工作区构成
1、工作区(working directory) 也就是你所操作的工作区
2、暂存区(stage index) 即将提交到历史记录区的一个缓冲区
3、历史记录区(history) 历史记录区
Git使用40个16进制字符的SHA-1 Hash来唯一标识对象,当一个文件被提交到暂存区的时候,同时也生成一个唯一标识,这样也提高了效率。
五、git命令速查
git branch 查看本地所有分支
git status 查看当前状态
git commit 提交
git branch-a 查看所有的分支
git branch-r 查看远程所有分支
git commit-am "init"提交并且加注释
git remote add origin git@192.168.1.119:ndshow
git push origin master 将文件给推到服务器上
git remote show origin 显示远程库origin里的资源
git push origin master:develop
git push origin master:hb-dev 将本地库与服务器上的库进行关联
git checkout--track origin/dev 切换到远程dev分支
git branch-D master develop 删除本地库develop
git checkout-b dev 建立一个新的本地分支dev
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add .
git rm 文件名(包括路径) 从git中删除指定文件
git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
git config --list 看所有用户
git ls-files 看已经被提交的
git rm [file name] 删除一个文件
git commit-a 提交当前repos的所有的改变
git add [file name] 添加一个文件到git index
git commit-v 当你用-v参数的时候可以看commit的差异
git commit-m "This is the message describing the commit"添加commit信息
git commit-a -a是代表add,把所有的change加到git index里然后再commit
git commit-a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暂存的更新
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm--cached a.a 移除文件(只从暂存区中删除)
git commit-m "remove"移除文件(从Git中删除)
git rm-f a.a 强行移除修改后文件(从暂存区和工作区中删除)
git diff--cached 或 $ git diff --staged 查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来---------------------------------------------------------git remote add origin git@github.com:username/Hello-World.git
git push origin master 将本地项目给提交到服务器中-----------------------------------------------------------git pull 本地与服务器端同步-----------------------------------------------------------------git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。
git push origin serverfix:awesomebranch------------------------------------------------------------------git fetch 相当于是从远程获取最新版本到本地,不会自动merge
git commit-a -m "log_message" (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :
git branch branch_0.1master 从主分支master创建branch_0.1分支
git branch-m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0git checkout branch_1.0/master 切换到branch_1.0/master分支
du-hs
git branch 删除远程branch
git push origin :branch_remote_name
git branch-r -d branch_remote_name-----------------------------------------------------------初始化版本库,并提交到远程服务器端
mkdir WebApp
cd WebApp
git init 本地初始化
touch README
git add README 添加文件
git commit-m 'first commit'git remote add origin git@github.com:daixu/WebApp.git
增加一个远程服务器端
上面的命令会增加URL地址为'git@github.com:daixu/WebApp.git',名称为origin的远程服务器库,以后提交代码的时候只需要使用 origin别名即可
更多推荐
所有评论(0)