Git 笔记

来源:互联网 发布:iptv管理系统源码下载 编辑:程序博客网 时间:2024/06/03 00:18

git的安装

sudo apt-get install git-core

全局配置

git config --global user.name "Your Namegit config --global user.email "email@example.com"
git init 初始化 出现 .git目录git add xxgit commit aa.txt bb.txt -m "aadd"git status 多用此命令来来了解当前状态git diff reade.txt 比较文件的变化git log 查看日志,历史记录git log --pretty=oneline  格式输出回退一部  git reset --hard HEAD^
代码库覆盖本地: git reset --hard git pull合并冲突后git commit -a git diff HEAD readme.txt  查看工作区与版本库最新区别git checkout readme.txt  丢弃工作区文件的修改(或删除工作区文件)删除版本库文件git rm read.txtgit commit -m "rm "git push 

git reflog
git reset –hard ID //通过查看ID,倒退

git reset HEAD readme.txt git checkout –readme.txt 可以把暂存区的修改撤销掉,放回工作区,然后在工作区删除
删除
工作区删除 rm readme.txt
版本库删除 git rm readme.txt
若工作区删除错误 可以使用 git checkout – readme.txt 恢复工作区

远程版本库连接
ssh-keygen -t rsa -C “youremail@example.com” 生成 .ssh目录,把id_rsa.pub打开复制到github账户设置下的 SSH Key

git remote add origin git@github.com:yuchuan512/learngit.git
关联远程库,因为SSH Key公钥在账户列表中,可以推送上去
git push -u origin master 把本地库的所有内容给推送到远程库上
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

下次只需要 git push origin master

git clone git@github.com:michaelliao/gitskills.git

分支管理
git checkout -b dev 创建dev分支,并切换到dev。此语句相当于 git branch dev git checkout dev

git branch 查看当前全部分支,*号代表当前工作分支

git checkout master 切换到master分支
git merge dev 把dev分支工作合并到master分支上,直接把master指向dev的当前提交
git branch -d dev 删除dev分支

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存

用带参数的git log也可以看到分支的合并情况:
git log –graph –pretty=oneline –abbrev-commit

bug分支
git checkout dev ….操作….. git stash 将当前git状态入栈保存,此时查看git status干净的
git checkout master ….操作….
开辟bug分支 git checkout -b bug-fix git add xx git commit -m “xx is fixed” git branch -d bug-fix

git stash list 查看栈中工作空间
1) git stash apply ,但是stash内容不删除,需要用git stash drop 来删除
2) git stash pop 恢复工作空间的同时也会清理stash内容

也可以多次stash,恢复的时候先用git stash list查看,要恢复指定的stash
git stash apply stash@{0} git stash drop

feature-vulcan分支还没有被合并,如果删除,将丢失掉修改
如果要强行删除,需要使用命令git branch -D feature-vulcan

当从远程库克隆时,git自动把本地的master分支和远程的master分支对应起来,远程库的默认名称是origin
查看远程库信息 : git remote 或者git remote -v 显示更详细的信息

git push origin master 也可以推送其他分支,如 git push origin dev
与远程分支默认绑定,push与pull的时候不需要指定分支
git branch –set-upstream-to=origin/dev

如果不指定绑定的话,push与pull的时候需要
git push origin dev
git pull origin dev

在GitHub上,可以任意Fork开源仓库;
自己拥有Fork后的仓库的读写权限;
可以推送pull request给官方仓库来贡献代码

Git配置
git config –global color.ui true
.gitignore文件 参考组合 https://github.com/github/gitignore
忽略某些文件时,需要编写.gitignore
.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!

忽略文件的原则是:
忽略操作系统自动生成的文件,比如缩略图等;
忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

别名 别名就在[alias]后面,要删除别名,直接把对应的行删掉即可
git config –global alias.st status ==》 用st代替status

git config –global alias.lg “log –color –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit”

Git Cheat Sheet git参考

0 0