git_sheetcheat

2017-08-05  本文已影响0人  tf_dejs

git是一款开源的版本控制系统(version control system)

原理

files@【工作区】-->git add files-->files@【暂存区】@【版本库】-->git commit-->files@【HEAD】@【版本库】

linux安装

# apt-get install git

配置工具

为所有本地仓库设置用户信息

# git config --global user.name "[name]"
为提交任务设置相关用户名称
# git config --global user.email "[email_address]"
为提交任务设置相关用户邮箱
# git config --global color.ui auto
使命令行输出时显示颜色

创建仓库

创建一个新仓库,或从已有URL克隆一个仓库

# git init [project_name]
创建一个本地仓库【project_name】
# git clone [url]
下载一个项目和他的版本历史

修改编辑

查看仓库文件和提交

# git status
列出所有新文件和未被提交的标记文件
# git diff 
显示未归档文件做了哪些修改
# git add [file]
归档文件
# git diff --staged
显示归档的文件和上次提交时快照的差异
# git reset [file]
取消归档,但保护文件内容
# git commit -m "[descriptive_message]"
提交文件【将记录的文建快照永久保存到版本记录中】

撤销提交

擦除提交

# git reset [commit]
撤销[commit]之后的所有提交,本地文件不变
# git reset --hard [commit]
撤销所有历史记录,改变到特定的[commit]
# git reset HEAD [file]
把暂存区的修改都撤销掉

编辑分支

查看、创建、合并、检出和删除分支

# git branch
显示当前仓库所有分支
# git branch [branch_name]
创建分支
# git checkout [branch_name]
检出某分支,并转换到该分支并更新工作目录
# git checkout -- file
丢弃工作区的修改,假如删除了工作区的文件,但版本库中有
# git merge [branch_name]
合并特定的分支到当前分支
# git branch -d [branch_name]
删除某特定分支

删除文件

版本控制系统之内

# git rm [file]
删除文件,并从版本控制系统中删除
# git rm --cached [file]
从版本控制系统删除文件,但保存本地文件,相当于未添加该文件
# git mv [file-original] [file_rename]
重命名文件,准备提交

查看历史记录

# git log
显示当前分支的版本提交历史
# git log --pretty=oneline
单行显示每次提交信息
# git log --follow [files]
显示当前分支特定文件的版本提交历史
# git diff [first_branch] [second_branch]
显示两支分支的不同
# git show [commit,前6位]
显示特定提交信息的元数据

显示临时文件,忽略的文件

# git ls-files --other --ignored --exclude-standard
显示项目中所有忽略的文件

保存片段

在不创建分支的情况下,保存现有片段,进行修改,再恢复该片段

# git stash
临时存储所有modified改变
# git stash pop
恢复最近保存的片段文件
# git stash list
列出所有保存的片段
# git stash drop
丢弃所有保存的片段

标签

# git tag [name]
打一个新标签
# git tag
查看所有标签
# git tag [name] [commit,前6位id]
针对提交的commit打标签
# git show [tag_name]
显示打标签的信息
# git tag -a [tag_name] -m "tag_message" [commit,前6位id]
为标签标记说明信息
# git tag -s [tag_name] -m "tag_message" [commit,前6位id]
为标签采用PGP签名
# git tag -d [tag_name]
删除标签,一般创建的标签都在本地,不会自动推送到远程
# git push origin [tag_name]
推送标签到远程
# git push origin --tags
推送所有标签到远程,若删除远程标签,需先删除本地标签,在使用下列方法
# git push origin :refs/tags/[tag_name]
从远程删除某标签

同步

注册仓库书签,交换版本历史

# git fetch [bookmark]
从仓库书签下载所有历史
# git merge [bookmark]/[branch]
将仓库的标签的分支合并到当前分支
# git push [alias][branch]
上传所有本地分支提交的内容到github
# git pull 
下载标签历史和改变

远程仓库

github上其他仓库
可fork其他仓库到自己账号下,再克隆到本地研习

# ssh-keygen -t rsa "youremail@example.com"
创建ssh key,确保github确认推送的动作为用户本人,
用户目录有.ssh目录,id\_rsa和id\_rsa.pub。
id\_rsa.pub为公钥,在github中Account settings中"SSH keys"粘贴id\_rsa.pub里的公钥
# git remote add origin git@github.com:username/project/git
连接远程库
# git push -u origin master
将本地库的所有内容推送到远程库上,【-u】参数,将本地master和远程master分支连接在一起,可用作第一次推送,之后无需使用【-u】
# git clone git@github.com:username/project.git
克隆远程库到本地,ssh较快,https较慢

创建别名

# git config --global alias.st status
--global为全局变量,之后就可以简化
上一篇下一篇

猜你喜欢

热点阅读