希望可以帮到需要帮助的人。
用户每次push都需要输账号密码解决办法参考
http://git.oschina.net/oschina/git-osc/issues/2586
git使用教程参考
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
1. 安装完成后 在 GitBash 命令行中配置name 和 email
$ git config --global user.name "Your Name" $ git config --global user.email "[email protected]"
2.
$ mkdir learngit 在当前目录下创建文件夹 $ cd learngit 进入到创建的文件夹中 $ pwd 查看文件夹所在的路径 $ git init 把该目录变成Git可以管理的仓库Repository(Initialized empty Git repository in /Users/michael/learngit/.git/ 创建好后 告诉你是空的仓库)
3.
$ git add readme.txt 向仓库添加一个文件,可多次添加,一次可添加多个文件 $ git commit -m "wrote a readme fle" 提交 -m 对应的是版本注释(因为git进程在早期的源码仓中冲突,确保没有其他的git进程在这个源码仓运行,
解决方法就是移除这个原来的git进程的,rm是remove的缩写
$ git rm -f ./.git/index.lock //
4.
$ git status 查看仓库当前的状态 $ git diff readme.txt 看看readme.txt具体修改了什么内容
5.
$ git log 显示从最近到最远的提交日志历史 $ git log --pretty=oneline 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数 $ git log --graph --pretty=oneline --abbrev-commit 查看commitid 和 版本说明
6.
$ git reset --hard HEAD^ 回退到上一个版本 HEAD^^上上一个版本 HEAD~100上100个版本(HEAD指向的版本就是当前版本) $ cat readme.txt 查看文本内容
7.
$ git reset --hard 3628164(commitId) 指定转到到该版本 版本号没必要写全,前几位就可以了,Git会自动去找。 $ git reflog 查询 你的每一次命令 根据id 跳到指定版本 ea34578 HEAD@{0}: reset: moving to HEAD^ 3628164 HEAD@{1}: commit: append GPL ea34578 HEAD@{2}: commit: add distributed cb926e7 HEAD@{3}: commit (initial): wrote a readme file
8.
$ git checkout -- readme.txt 让这个文件回到最近一次git commit或git add时的状态 没有--,就变成了“切换到另一个分支”的命令 $ git reset HEAD readme.txt 可以把暂存区的修改撤销掉(unstage)
9.
$ rm test.txt 删除文件 $ git checkout -- test.txt 如果一个文件已经被提交到版本库 把误删的文件恢复到最新版本10. 远程仓库····GitHub
$ git remote add origin https://github.com/your username/learngit.git 添加到远程仓库 $ git push -u origin master我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,
$ git push origin master 把本地master分支的最新修改推送至GitHub。
11.
$ git clone [email protected]:michaelliao/gitskills.git 克隆 $ git clone https://github.com/michaelliao/gitskills.gitGit支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
$ git checkout -b dev(分支名) 加上-b参数表示创建并切换,相当于以下两条命令 $ git branch dev //创建分支dev $ git checkout dev //切换到dev分支下 $ git checkout master //切换回主分支 $ git branch -d dev //删除分支 $ git branch -D dev //分支还没有被合并,如果删除会销毁失败,将丢失掉修改,如果要强行删除,需要使用该命令 $ git merge dev //切换分支后 合并dev到当前分支合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息
$ git merge --no-ff -m "merge with no-ff" dev因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
13.
$ git stash 可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作 $ git stash list 用git stash list命令 看工作现场一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
$ git stash apply stash@{0}14. 在分支下提交到GitHub 远程会对应创建分支
$ git checkout -b dev origin/dev 创建远程origin的dev分支到本地 $ git remote 查看远程库的信息 $ git remote -v 显示更详细的信息 $ git checkout -b dev origin/dev //创建远程origin的dev分支到本地
$ git branch --set-upstream dev origin/dev15. 发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。
$ git tag <tagname> 6224937 某次提交打标签,它对应的commit id是6224937 $ git tag 查看所有标签 $ git show <tagname> 查看标签信息 $ git tag -a v0.1 -m "version 0.1 released" 3628164 用-a指定标签名,-m指定说明文字 $ git tag -s v0.2 -m "signed version 0.2 released" fec145a 通过-s用私钥签名一个标签
$ git tag -d v0.1 删除标签 $ git push origin v1.0 推送某个标签到远程 $ git push origin --tags 一次性推送全部尚未推送到远程的本地标签 删除远程标签就麻烦一点,先从本地删除 $ git tag -d v0.9 $ git push origin :refs/tags/v0.9 远程删除。删除命令也是push,格式如此。
$ git add -f App.class 文件被.gitignore忽略了 可以用-f强制添加到Git $ git check-ignore -v App.class 如果.gitignore写得有问题,需要找出来到底哪个规则写错 用此命令
$ git config --global alias.st status $ git st = $ git status常用别名配置
$ git config --global alias.st status $ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.br branch reset HEAD :把暂存区的修改撤销掉(unstage),配置成别名unstage $ git config --global alias.unstage 'reset HEAD' 配置一个git last,让其显示最后一次提交信息 $ git config --global alias.last 'log -1' $ 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 config --global credential.helper cache 设置记住密码(默认15分钟) $ git config credential.helper 'cache --timeout=3600' 这样就设置一个小时之后失效 $ git config --global credential.helper store 长期存储密码(本人亲测有效)也可以下载安装 git-credential-winstore http://gitcredentialstore.codeplex.com/
增加远程地址的时候带上密码也是可以的。(推荐)
http://yourname:[email protected]/name/project.git