您的位置:首页 > 其它

git版本管理工具

2018-04-01 10:51 309 查看

前言

很早就接触了GitHub,也安装过GitHub的win版本,win上体验极差,连安装都比较费劲。对于多数大拿而言,都是用命令行去管理自己的代码,但是自己以前百度了一些Git使用方式,由于对github-repository设置不太熟悉,觉得这个比较麻烦,因此也就懒得去弄它。今日购买域名后,fork了别人的repository建立博客网站,如果像原来一样直接在网页上修改编辑repository那就太麻烦了(网页上传动不动就不成功,而且由于误操作什么的可能导致其托管的网站崩溃,上一个自己的网站就是这么玩完的,MMP),于是只能硬着头皮捣鼓Git,经过一下午折腾,在Ubuntu上敲了一遍Git基本命令行,总算是学到了。这里做个笔记一一记下,以方便以后查阅使用。

1. 安装git

$ sudo apt-get update
$ sudo apt-get install git


2. 编辑配置信息

$ sudo vim ~/.gitconfig #默认是没有该配置文件的
[user]
name = rolabhj
email = rolabhj@gmail.com
$ git config --list #编辑好后即可查看配置




3. 创建公钥

$ ssh-keygen -C 'rolabhj@gmail.com' -t rsa #在本地使用可以不用加密码,一路回车即可


4. 上传公钥



Title可以随便命名,Key的内容拷贝自
cat ~/.ssh/id_rsa.pub


5. 测试

$ ssh -v git@github.com #debug:Exit status 1即安装成功




6. 使用

常用

$ git init #初始化该目录
$ git add file #把文件添加到版本库中
$ git status #显示工作路径下已修改的文件
$ git commit -m "Initial Commit" -a #提交所有文件,m表示message ,a表示所有
$ git commit -m "Initial Commit" file #提交特定文件
$ git commit --amend #请勿修改已发布的提交记录
$ git diff #显示与上次提交版本文件的不同
$ git grep "Hello" #从当前目录的所有文件中查找文本内容
$ git log #显示所有的提交记录
$ git remote add origin ssh://git@git.domain.tld/repository.git #关联到远程库
$ git remote -v #查看远程主机名
$ git push origin master #提交代码


ssh:// HTTPS
查看下图



删除远程文件

$ git rm -r --cached file-master
$ git commit -m "delete file"
$ git push origin master

# 或者先删除本地文件然后add commit再push

$ git add -A #它能stages所有文件,git add.只能stages新文件和被修改文件,没有被删除文件


添加(修改)文件

# 先git clone到本地,然后创建新文件readme.md

$ git add readme.md #添加到仓库
$ git commit -m "first commit" #添加说明
$ git push -u origin master #推到远程(-u本地分支与远程分支保持同步)


推送成功



注意:每次修改,如果不add到暂存区,那就不会加入到commit中

远程更新到本地

$ git fetch origin master:tmp #远程获取最新的版本到本地的tmp分支上
$ git diff tmp #进行比较
$ git merge tmp #合并
$ git git branch -d tmp #delete tmp
$ git pull origin master #相当于git fetch 和 git merge


分支与标签

$ git branch #列出所有的分支
$ git checkout <branch> #切换分支
$ git checkout -b <branch> #创建并切换到新分支
$ git branch <new-branch> #基于当前分支创建新分支
$ git branch -d <branch> #删除本地分支
$ git tag <tag-name> #给当前版本打标签


撤销

$ git reset --hard HEAD #放弃工作目录下的所有修改
$ git reset HEAD #移除缓存区的所有文件(i.e. 撤销上次git add)
$ git checkout HEAD <file> #放弃某个文件的所有本地修改
$ git revert <commit> #重置一个提交
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: