引用请标明出处:http://blog.csdn.net/callon_h/article/details/51308841
Git使用小总结:
1. git工具的安装:
(1) 对于ubuntu系统:
$sudo apt-get install git
$sudo apt-get install git-doc git-svn git-email git-gui gitk
(2) 对于macbook OSX:
推荐使用命令行安装,首先去
https://www.kernel.org/pub/software/scm/git/
下载最新源码。
$cd git-x.x.x
$./configure --prefix=/usr/local
$make
$sudo make install
使用上述命令安装,但是其中在make时可能出现:
'openssl/ssl.h' file not found
的错误。
可采用如下方法解决:
首先如果没有安装xcode-select,先xcode-select –install安装它,
然后使用
xcode-select –p
查找xcode安装所在目录,比如命令得到安装目录为:/Applications/Xcode.app/Contents/Developer
再然后进入/Applications/Xcode.app/Contents/Developer,查找ssl.h
cd /Applications/Xcode.app/Contents/Developer && find . -name ssl.h
得到ssl.h所在目录,比如:
./Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-migrator/sdk/MacOSX.sdk/usr/include/openssl/ssl.h
最后将整个openssl所在目录拷贝至git-x.x.x/openssl中:
sudo mkdir /xx/git-x.x.x/openssl
cp /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-migrator/sdk/MacOSX.sdk/usr/include/openssl/* /xx/git-x.x.x/openssl
继续使用
$make
$sudo make install
即可完成安装。
2. git设置和ssh key
(Ubuntu和macbook OSX所差无几,在此以mac为例)
如果是第一次使用git:
$git config --global user.name "callonH"
$git config --global user.email "371614324@qq.com"
再在本地创建一个版本库:
$mkdir /User/callon/Documents/sshGit
$cd /User/callon/Documents/sshGit
$git init
这样在该目录下可以任意使用git命令了。
你可以尝试:
$touch test.txt
$git add test.txt
$git commit –m ‘test1’
$git log
来测试。
https://github.com/join?source=header-home
然后登陆上述网站创建新账户并选择免费的服务(有钱另论)。激活之后,New Repository
然后使用如下命令生成 SSH Key:
$ssh-keygen -t rsa -C "371614324@qq.com"
邮箱为注册用邮箱,也是你user.email的邮箱。
执行上述命令以后会要求你做一些输入和选择,一开始让你确认是否将 SSH Key 文件存放到~/.ssh 目录,如 果已经存在该目录,且该目录已经有了 SSH Key,会询问用户是否覆盖。接下来让你输入密码,注意输入密码的 时候没有回显,接着是再次输入密码,两次密码都是注册 GitHub 时候的登陆密码,如果一切正常,在~/.ssh 目录会生成 id_rsa 和 id_rsa.pub 两个文件,它们是 SSH Key 的秘钥对。 id_rsa 是 私钥,不能泄露出去; id_rsa.pub 是公钥,可以放心地告诉任何人。
然后找到settings:
找到ssh keys,加一个key,内容即为id_rsa.pub里面的内容。然后测试一下:
$ssh-T git@github.com
最后使用 git remote 命令设置项目在 GitHub 的 URL:
$git remote add origin git@github.com:callonH/MacbookGit.git
记得选择你创建的repository中的ssh的url!
其中 origin 表示的是远程代码库的仓库名字,可以自己定义,同时这个命令将本地代码库和 GitHub 远程代码
库关联起来。还需要使用如下命令使得远程代码库的 test.txt 等文件和本地代码库一致,否则不能执行 git push。
$git pull --rebase origin master
使用下述命令将本地版本库主分支(master)中的文件上传到 GitHub,其中-u 选项是第一次 push 的时候使 用,将本地和远程的 master 分支关联起来,并同步文件,以后就可以简化命令。
$git push -u origin master
到此基本结束。以后需要的:
仅仅是
$git add .
当前所有文件add
$git commit –m ‘xxx’
提交
$git push origin master
如果需要下载:
1.
$git clone git@github.com:callonH/MacbookGit.git
2.
$git pull origin master
如果你想把远程代码库的一个文件/文件夹删掉:
$git rm -r --cached *xxx*
$git commit –m ‘remove’
$git push origin master
你会发现你的文件夹在本地没有删除,但是在远程代码库中已经消失了。
问题1. 当笔者将一个目录变成git目录(使用git init),结果发现当前目录没有包含全部代码,想包含它的上一级目录,从而便直接在它的上一级使用git init再建立了一次,此时
$git add .
$git commit –m ‘xxx’
$git push origin master
会发现你上传到git的代码并不全,之前你使用过git init的子目录显示灰色:
此时需要删除该子目录下由于git init创建了的:
.git和.gitignore
然后再尝试刚刚的上传过程,如果还是不对,可能提示:
fatal: no submodule mapping found in .gitmodules for path 'xxx/xxx'
$git rm --cached xxx/xxx
那么使用上述命令,再重复之前的动作,就好了~