Git使用
1、下载git https://code.google.com/p/msysgit/downloads/list
2、安装git 。
3、一直next下去就安装完成了。
4、git与bitbucket关联,产生一个公钥(类似与seesion,下回我们git 项目时就不用登录了。)。 在开始->所有程序->git->Git Bash 打开gitbash。
显示如下界面:
5、输入 ssh-keygen ,按enter,一直按enter 直到出现下面
6、上图中会提示公钥生成在 C:\Documents and Settings\Administrator\.ssh 目录中,找到目录 ,里面有id_rsa.pub文件,用记事本打开,然后把里面的东西 全选复制。
7、登录bitbucket页面,点击头像,选择帐号管理。然后点选如图SSH密钥,然后有个他添加Key,把刚才复制的key复制进去。添加就完成了。
Git操作命令
1. 远程仓库相关命令
检出仓库:$ git clone git://github.com/jquery/jquery.git
查看远程仓库:$ git remote -v
添加远程仓库:$ git remote add [name] [url]
删除远程仓库:$ git remote rm [name]
修改远程仓库:$ git remote set-url --push [name] [newUrl]
拉取远程仓库:$ git pull [remoteName] [localBranchName]
推送远程仓库:$ git push [remoteName] [localBranchName]
* 如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名为test的分支,命令如下:
$ git push origin test:master
$ git push origin test:test
2. 分支(branch)操作相关命令
查看本地分支:$ git branch
查看远程分支:$ git branch -r(如果看不到就先git fetch origin)
创建本地分支:$ git branch [name]
切换分支:$ git checkout [name]
创建新分支并立即切换到新分支:$ git checkout -b [name]
查看检出远程分支:$ git checkout -b [name] [remoteName]
删除分支:$ git branch -d [name] (d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果要强制删除一个分支,可以使用-D选项)
合并分支:$ git merge [name] (将名称为name的分支与当前分支合并)
合并最后的2个提交:$ git rebase -i HEAD~2(数字2按需要修改即可)
创建远程分支:$ git push origin [name]
删除远程分支:$ git push origin :[name]
3. 版本(tag)操作相关命令
查看版本:$ git tag
创建版本:$ git tag [name]
删除版本:$ git tag -d [name]
查看远程版本:$ git tag -r
创建远程版本:$ git push origin [name]
删除远程版本:$ git push origin :refs/tags/[name]
合并远程仓库的tag到本地:$ git pull origin --tags
上传本地tag到远程仓库:$ git push origin --tags
创建带注释的tag:$ git tag -a [name] -m 'yourMessage'
4. 子模块(submodule)相关操作命令
添加子模块:$ git submodule add [url] [path]
初始化子模块:$ git submodule init
更新子模块:$ git submodule update
删除子模块:1) $ git rm --cached [path] 2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉 3) 编辑“.git/config”文件,将子模块的相关配置节点删除掉 4) 手动删除子模块残留的目录
5. 版本回溯
删除当前仓库内未受版本管理的文件:$ git clean -f
恢复仓库到上一次的提交状态:$ git reset --hard
回退所有内容到上一个版本:$ git reset HEAD^
回退a.py这个文件的版本到上一个版本:$ git reset HEAD^ a.py
回退到某个版本:$ git reset 057d
将本地的状态回退到和远程的一样:$ git reset -hard origin/master
向前回退到第3个版本:$ git reset -soft HEAD~3
6. 其他
查看Git全局设置信息:git config -l
设置用户名和邮箱:git config --global user.name "***"
git config --global user.email *****@gmail.com
7、git提取差异文件并打包
git diff 608e120 4abe32e --name-only | xargs zip update.zip
Git的.gitignore配置
1、配置语法:
以“/”开头表示目录;
以“*”通配多个字符;
以“?”通配单个字符;
以“[]”包含单个字符的匹配列表;
以“!”表示不忽略匹配到的文件或目录;
此外,git对.gitignore配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
2、示例:
(1)规则:fd1/*
说明:忽略目录fd1下的全部内容;注意,不管是根目录下的/fd1/目录,还是某子目录/child/fd1/目录,都会被忽略;
(2)规则:/fd1/*
说明:忽略根目录下的/fd1/目录的全部内容;
(3)规则:
/*
!.gitignore
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但不忽略.gitignore文件、根目录下的/fw/bin/和fw/sf/目录;
Git问题:
1、.gitignore失效的解决方法
运行命令:git rm -r --cached . (delete all cached)
2、当push代码到git时,出现提示:
问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。解决方式:
强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容
git push -f
3、提交代码
git add .
git commit
git push
4、强制覆盖本地文件
git fetch --all
git reset --hard origin/master
作者:sy
出处:http://www.cnblogs.com/sydeveloper
QQ:522733724
本页版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明,
且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利