目录[隐藏]
|
$ git clone ssh://%%%%.git $ git clone ssh://%%%%%%.git
$ git config --global user.name "zhengyue" $ git config --global user.email [email protected]
$ git init
$ git add .
$ git commit -a
$ git checkout -f 或 $ git reset --hard
$ git log ## 列出所有提交过的版本,注意每个版本有一个很长的16进制字符串做为ID $ git checkout abcde filename ## 提取出ID为abcde的版本中的某个文件,覆盖掉当前的本地文件。
注:ID字符串不用写全,只要写前几位即可,一般写出5位就不会有重复的了。
$ git branch test
$ git checkout test
$ git checkout master
把下面的脚本放到 ~/.profile 或者 ~/.bashrc 里,命令行的提示符即会显示出当前的git分支名称。例如:~/Projects/cmb (master) $
function parse_git_branch { ref=$(git symbolic-ref HEAD 2> /dev/null) || return echo "("${ref#refs/heads/}")" } PS1="\w \$(parse_git_branch)\$ "
git本身带了一个服务器命令,启动后,其他机器可以用git协议访问本机的代码库。
$ git daemon --export-all --base-path=/home/pub/projects/ test.git
注意:
从版本库中删除文件
在git rm -rf --cached CCB.xcodeproj/project.xcworkspace/xcuserdata/
--cached 本地保留服务器删除
远程仓库的删除和重命名
在新版 Git 中可以用 git remote rename 命令修改某个远程仓库的简短名称,比如想把 pb 改成 paul,可以这么运行:
$ git remote rename pb paul $ git remote origin paul
注意,对远程仓库的重命名,也会使对应的分支名称发生变化,原来的 pb/master 分支现在成了paul/master。
碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库,可以运行 git remote rm 命令:
$ git remote rm paul
或者使用
$ git push origin :xx
$ git branch -d xx
git checkout 指定分支 指定文件
git checkout master HFFrame/Global/Global_macro.h
$ git clone git://10.150.150.136/test.git test
第一次:
$ git pull git://10.150.150.136/test.git master 或 $ git pull ssh://10.150.150.136/test.git master
以后:
$git pull origin master
如果是提交到master分支:
$ git push origin master
有时候在本地创建的分支希望分享到远程代码库的分支里,下面命令会在远程创建一个名为branch的分支,并且和本地的branch分支关联起来
$ git push origin branch
以后,即可使用 git push 来分享代码到远程库。
有时候需要在本地获取一个远程分支,使用这个命令:
$ git branch --track origin/branch
以后即可使用 git pull 来获取远程的更新
git支持很多种不同的工作流程,我们采用的是与SVN接近的模拟中央服务器流程。即,有一个公用的代码库放在服务器上,开发者从这个共享的服务器克隆后,在本地开发,然后提交到服务器,并且从服务器获取其他用户提交的内容。
git可以使用多种协议在代码库之间通信。我们目前采用ssh协议,需要用户在服务器上有一个ssh帐号才能访问代码库。用户需要在本机创建一个ssh密钥对,把公钥发给管理员,密钥保存在自己本机。这样,就可以使用密钥连接服务器。
开始工作之前,需要复制一套中央服务器的代码库:
$ git clone /server/repo/project
git的提交操作是在本地完成的,不需要网络连接。
$ git checkout branch --- 编辑现有文件或者添加新文件 ...
$ git add newfile $ git commit -a --- 填写此次提交的备注
这个操作实际是执行了获取更新,并且与本地代码合并两个操作。因为有可能2人改了同一个地方,所以这里有可能会出现冲突的情况。出现冲突时,需要手工合并代码。
$ git pull
这个操作是把本地的所有新的commit历史都提交到服务器
$ git push
git可以和SVN服务器一起使用,即,中央服务器采用svn,本地代码库使用git。这样的好处是,可以兼容以前的项目,同时本地有一套完整的版本控制系统,可以随时查看代码修改历史,随时提交,不需要网络。合适的时候再提交到SVN服务器。git-svn的工作流程也有很多,我们推荐使用下面这种方式。
$ git svn clone http://svnserver/project/trunk
为了方便合并,减少不必要的麻烦,最好保持主分支master不变,在一个新的分支进行日常工作
与git的工作流程完全一样
$ git checkout -b work ... 编辑 ... $ git commit -a
$ git checkout master $ git svn rebase
$ git checkout work $ git rebase master ## 手工解决可能的冲突
$ git checkout master $ git merge work
1. github是一个git项目托管网站
注册地址:https://github.com/signup/free
2. 安装git程序,执行下面操作
$ cd ~/.ssh //检查计算机ssh密钥
如果没有提示:No such file or directory 说明你不是第一次使用git,执行下面的操作,清理原有ssh密钥
$ ls config id_rsa id_rsa.pub known_hosts $ mkdir key_backup $ cp id_rsa* key_backup $ rm id_rsa*
获得密钥:
ssh-keygen -t rsa -C "[email protected]"//填写email地址,然后一直“回车”ok
打开本地..\.ssh\id_rsa.pub文件。此文件里面内容为刚才生成人密钥。
4. 登陆github系统。点击右上角的 Account Settings--->SSH Public keys ---> add another public keys
把你本地生成的密钥复制到里面(key文本框中), 点击 add key 就ok了
5. 接着打开git ,测试连接是否成功
$ ssh -T [email protected]
如果提示:Hi defnngj You've successfully authenticated, but GitHub does not provide shell access. 说明你连接成功了
6. 设置用户信息:
6.1
$ git config --global user.name "defnngj"//给自己起个用户名 $ git config --globla user.email "[email protected]"//填写自己的邮箱
6.2
在github中找到 Account Settings--->Account Admin ,找到一下信息:
Your API token is e97279836f0d415a3954c1193dba522f ---keep it secret! Changing your password will
generate a new token
$ git config --global github.user defnngj //github 上的用户名 $ git config --globla github.token e97279836f0d415a3954c1193dba522f
====================创建一个项目========================
1. 回到github首页,点击页面右下角“New Repository”
填写项目信息:
project name: hello world
description : my first project
点击“Create Repository” ; 现在完成了一个项目在github上的创建。
2. 我们需要使用git在本地创建一个相同的项目。
$ makdir ~/hello-world //创建一个项目hello-world $ cd ~/hello-world //打开这个项目 $ git init //初始化 $ touch README $ git add README //更新README文件 $ git commit -m 'first commit'//提交更新,并注释信息“first commit” $ git remote add origin [email protected]:defnngj/hello-world.git //连接远程github项目 $ git push -u origin master //将本地项目更新到github项目上去
现在查看github上面的hello world 项目,是不是发现已经将本地中的README文件更新上来了。 恭喜!
可能的错误
$ git remote addorigin [email protected]:defnngj/hello-world.git
错误提示:fatal: remote origin already exists.
解决办法:
$ git remote rm origin
然后在执行:$ git remote add origin [email protected]:defnngj/hello-world.git 就不会报错误了
本文是参考官方帮助进行的:http://help.github.com/win-set-up-git/ 基本与官方步骤相同,我在此属于翻译了一下!
关于更过的学习:请登陆: http://progit.org/book/zh/进行学习。