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

posted @ 2014-04-01 13:58  飛雲若雪  阅读(1038)  评论(0编辑  收藏  举报