当我们需要删除暂存区
或分支
上的文件, 同时工作区也不需要这个文件了, 可以使用
1 git rm file_path 2 git commit -m 'delete somefile' 3 git push
当我们需要删除暂存区
或分支
上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用
git rm --cached file_path git commit -m 'delete remote somefile' git push
github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。
Github 由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办。迄今拥有59名全职员工,主要提供基于git的版本托管服务。
要想使用github第一步当然是注册github账号了, github官网地址:https://github.com/。 之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程。
一个全新的ubunt系统,需要安装Git(系统是不具有该工具的),方法如下:
在terminel中输入如下命令:
sudo apt-get install git git-core git-gui git-doc git-svn git-cvs gitweb gitk git-email git-el git-arch
检查是否安装了git
:~$ git version
git version 2.7.4
下来需要检查SSH
因为GitHub会用到SSH,因此需要在shell里检查是否可以连接到GitHub:
ssh -T git@github.com
如果看到:
Warning: Permanently added ‘github.com,204.232.175.90’ (RSA) to the list of known hosts.
Permission denied (publickey).
则说明可以连接。
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。
ssh key;
第一步:检查本地是否已井具有ssh keys,如果已经具有,则进行第二步,否则,进行第三步
cd ~/.ssh
ls
第二步:备份并移除已经存在的ssh keys
mkdir key_backup
cp id_rsa* key_backup
rm id_rsa*
即将已经存在的id_rsa,id_rsa.pub文件备份到key_backup文件夹
第三步:执行如下命令(不具有ssh keys时):
ssh-keygen -t rsa -C "你自己的github对应的邮箱地址"
注1:双引号“”是需要的!
注2:命令是在ssh目录下进行的!
你需要把邮件地址换成你自己github的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh
目录(通过ls查看~/.ssh下面的所有内容查看),里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
第四步:将刚刚创建的ssh keys添加到github中
(1)利用gedit/cat命令,查看id_rsa.pub的内容
(2)在网站GitHub中,依次点击Settings -> SSH Keys -> Add SSH Key,将id_rsa.pub文件中的字符串复制进去,注意字符串中没有换行和空格。
第五步:再次检查SSH连接情况(在~/.ssh目录下):
输入如下命令:
ssh -T git@github.com
如果看到如下所示,则表示添加成功:
Hi 你的同户名! You’ve successfully authenticated, but GitHub does not provide shell access.
此时,发现github上已有了SSH keys
注1:之前在设置公钥时如果设置了密码,在该步骤会要求输入密码,那么,输入当时设置的密码即可。
注2:通过以上的设置之后,就能够通过SSH的方式,直接使用Git命令访问GitHub托管服务器了
即利用自己的用户名和email地址配置git
git config --global user.name "你的github用户名"
git config --global user.email "你的github邮箱地址"
具体内容不做介绍,假设,新建的仓库为dockerfiels
该目录名称与github新建立的目录相同,假设本地目录为~/Document/dockerfiles
cd ~/Document/dockerfiles
git init
例如,添加一个Readme文件
touch Readme
该步不可省略!
git add Readme
git commit -m 'add readme file'
git remote add origin https://github.com/你的github用户名/你的github仓库.git
或者
$ git remote add origin git@github.com:你的github用户名/你的github仓库.git
$ git pull origin master
将远程仓库的文件重新下载到本地仓库,然后再次执行
$ git push origin master
三、删除远程仓库不想要的文件
ps:我们在上传项目后如果上传了你不想要的文件怎么办?很操蛋的在github上我们是不能直接删除仓库的文件,我们只能通过终端命令来删除我们不想要的文件或者目录
Git 如何删除远程服务器文件同时保留本地文件
在上传工程到git上时,有时候会把本地的一些eclipse配置文件传到服务器上,这时你先删除本地,再同步服务器,显然是不合理的。git提供了一个好的解决方法,可以直接删除服务器文件,同时不影响本地文件,命令如下
1.删除服务器文件,本地保留
此时github上已经不存在了
2.删除远程useless 文件夹,本地保留
一定要注意,删除文件夹要使用-r 参数
1.clone项目:使用ssh方式时,首先你必须是该项目的管理者或拥有者,并且需要配置个人的ssh key。而对于使用https方式
来讲,就没有这些要求。
2.push:在使用ssh方式时,是不需要验证用户名和密码,如果你在配置ssh key时设置了密码,则需要验证密码。而对于使用
https方式来讲,每次push都需要验证用户名和密码。
然后,push git push origin master
git clone https://github.com/你的github用户名/github仓库名.git
如果是从自己仓库clone,还可以使用ssh方式
git clone [email protected]:你的github用户名/github仓库名.git
例如,添加一个新的文件
touch Readme_new
该步不可省略!(其实是提交到git缓存空间)
git add Readme_new
git commit -m 'add new readme file'
首先,需要将本地仓库与github仓库关联
注:https://github.com/你的github用户名/你的github仓库.git 是github上仓库的网址
git remote add origin https://github.com/你的github用户名/你的github仓库.git
有时,会出现fatal: remote origin already exists.,那么,需要输入git remote rm origin 解决该问题
然后,push,此时,可能需要输入github账号和密码,按要求输入即可
git push origin master
注:有时,在执行git push origin master时,报错:error:failed to push som refs to…….,那么,可以执行
git pull origin master
至此,github上已有的仓库的便有了更新
如果需要添加文件夹,有一点需要注意:该文件夹不能为空!否则不能成功添加
git push时候若出现如下错误:
error: failed to push some refs to 'https://github.com/dummymare/Hello-World.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
下面这行命令:
$ git pull origin master
将远程仓库的文件重新下载到本地仓库,然后再次执行
$ git push origin master
删除远程仓库不想要的文件
ps:我们在上传项目后如果上传了你不想要的文件怎么办?很操蛋的在github上我们是不能直接删除仓库的文件,我们只能通过终端命令来删除我们不想要的文件或者目录
Git 如何删除远程服务器文件同时保留本地文件
在上传工程到git上时,有时候会把本地的一些eclipse配置文件传到服务器上,这时你先删除本地,再同步服务器,显然是不合理的。git提供了一个好的解决方法,可以直接删除服务器文件,同时不影响本地文件,命令如下
1.删除服务器文件,本地保留
此时github上已经不存在了
2.删除远程useless 文件夹,本地保留
一定要注意,删除文件夹要使用-r 参数
若本地不需要保留,可直接进行如下操作:
1.克隆远程仓库到本地库(若本地已克隆过这个仓库,忽略这一步)。
例如使用ssh方法:
git clone [email protected]:xxx/xxx.git
2.对需要删除的文件、文件夹进行如下操作:
git rm test.txt (删除文件)
git rm -r test (删除文件夹)
3.提交修改
git commit -m "Delete some files."
4.将修改提交到远程仓库的xxx分支:
git push origin xxx
当我们需要删除暂存区
或分支
上的文件, 同时工作区也不需要这个文件了, 可以使用
1 git rm file_path 2 git commit -m 'delete somefile' 3 git push
当我们需要删除暂存区
或分支
上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用
git rm --cached file_path git commit -m 'delete remote somefile' git push
三、git常用命令:
1、git clone 仓库地址 //克隆仓库代码到本地
2、git diff //查看本地代码与远程代码有哪些不同
3、git pull //从远程拿到最新版本代码(提交代码时,忌讳直接提交。每次提交代码之前,一定要保证本地的代码是最新的,即先执行git pull)
4、git branch //查看本地代码属于仓库的哪个分支
5、git branch -a //查看仓库都有哪些分支
6、git checkout 分支名 //切换分支(注:不建议使用,最好给一个分支单独建立一个文件夹)
7、git clone -b 分支名 仓库地址 //克隆指定分支的仓库代码到本地
8、git push -u origin 分支名(分支名通常为master)
git 提交的步骤:
git init # 初始化本地Git版本库
git add # 暂存文件,如果使用.
表示当前目录及其子目录
git commit -m “first commit” # 提交,-m选项后跟内容为提交所用的注释
git push origin master # 将本地项目提交到远程版本库
其他命令:
git remote -v # 查看当前项目远程连接的是哪个版本库地址
git fetch origin # 取得远程更新(到origin/master),但还没有合并
git merge origin/master # 把更新的内容(origin/master)合并到本地分支(master)
git pull origin master # 相当于fetch和merge的合并,但分步操作更保险