标签:
创建版本库
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
标签:
原文地址:http://www.cnblogs.com/codeAB/p/5005267.html