artfoxe6#gmail.com new

git笔记

创建版本库
git init
eg:cd /opt && mkdir gitdir && cd gitdir && git init

此时gitdir就已经被初始化为一个空的仓库了
ls -a 可以看到有一个.git的隐藏目录,里面包含了项目文件修改情况,千万别修改或删除
我们可以把存在的项目拷贝进这个目录 然后就可以实用git来控制了

eg: touch new.py
现在我们在这个目录下新建了一个文件 但是这个文件还没有进入版本库
把文件送进版本库需要两步
把文件送进暂存区
git add filename  (可以添加多个文件到暂存区)
把暂存区的所有文件提交到版本库
git commit -m " description "
显示最近提交日志
git log
查看当前版本库状态
git status
当你新建文件  或者修改了文件还没有commit  status会告诉你
你新增了文件但是还没有添加到版本库 或者你修改了一个文件 但是还没有add到暂存区
或者你有文件在暂存区 但是还没有commit
查看当前修改的文件和版本库里面文件的差异
git diff [filename]

git reset --hard HEAD^
git reset --hard HEAD~100

git reset --hard 3628164

git reflog

git diff HEAD -- readme.txt

git checkout -- file可以丢弃工作区的修改

git reset HEAD file可以把暂存区的修改撤销掉

删除文件
rm filename
git rm filename
git commit filename

绑定远程github账户
在 ~/.ssh/下生成ssh私匙和公匙
ssh-keygen -t rsa -C "youremail@example.com"
将生成的id_rsa.pub内容复制到github上绑定

在github上创建一个空的项目
接下来把本地的git仓库同步到github上
git remote add origin git@github.com:codeab/study.git
把本地的仓库推送到github
git push -u origin master   (第一次提交加上参数u)

最好的情况是 我们先在github上创建仓库 然后克隆到本地
git clone git@github.com:codeab/study.git

git checkout -b dev 创建并切换分支

git branch 查看当前所有分支

git checkout master  切换分支

git merge dev 把dev分支合并到当前分支  

git branch -d dev  删除dev分支

因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,
合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。

合并冲突: 如果要合并的两个分支上的文件内容不一样
就会出现冲突  解决的办法是把一个分支上的文件改成和另一个文件一样才能合并

git merge --no-ff -m "merge with no-ff" dev
(产生记录的普通合并)

git remote -v  显示远程库信息
git push origin master  推送到远程的master分支

git push origin dev  推送到远程的dev分支

从远程库clone时,默认情况下,只能看到本地的master分支。可以用git branch 查看

要在dev分支上开发,就必须创建远程origin的dev分支到本地
git checkout -b dev origin/dev

git pull 推送当前分支到远程对应的dev分支(推送前看下一步)
git branch --set-upstream dev origin/dev
(指定本地dev分支与远程origin/dev分支的链接)

×××××将远程仓库的最新代码更新到本地×××××××

git fetch origin master:temp
从远程的origin仓库的master分支下载到本地新建一个分支temp
git diff temp
比较master分支和temp分支的不同
git merge temp
合并分支
git branch -d temp
删除temp分支

××××××××××××××××××××××××××××××××××××

git tag v1.0  在当前分支上打标签
git tag 查看所有标签

git tag v0.9 6224937  给指定的commit id打标签

git tag -d v0.1  删除标签
git push origin v1.0  把某个标签推送到远程

git push origin --tags  推送所有标签到远程

git push origin :refs/tags/v0.9  删除远程标签

自定义git
git config --global color.ui true

忽略特殊文件
.gitignore  
https://github.com/github/gitignore

配置别名
git config --global alias.st status

eg: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"

配置文件
cat .git/config

删除远程分支

git branch -r -d origin/master

stash的常用语句:

git stash list 查看储藏列表

git stash save 'comment' 把当前更改push到储藏(储藏是一个栈结构,后进先出)

git stash pop 把储藏里面最近一个储值弹出来,并将其在栈中删除

git stash apply stash@{0} 应用最后一个储值,但不删除

posted @ 2015-11-29 19:49  codeAB  阅读(287)  评论(0编辑  收藏  举报