Git
上传
如果我们要把一个项目加入到Git的版本管理中,可以在项目所在的目录用git init命令建立一个空的本地仓库,然后再用git add命令把它们都加入到Git本地仓库的暂存区(stage or index)中,最后再用git commit命令提交到本地仓库里。
创建一个新的项目目录,并生成一些简单的文件内容
$ mkdir test_proj
$ cd test_proj
$ echo “hello,world” > readme.txt
在项目目录创建新的本地仓库,并把项目里的所有文件全部添加、提交到本地仓库中去
$ git init #在当前的目录下创建一个新的空的本地仓库
Initialized empty Git repository in /home/user/test_proj/.git/
$ git add . #把前目录下的所有文件全部添加到暂存区
$ git commit -m 'project init' #创建提交
[master (root-commit) b36a785] project init
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 readme.txt
远程提交(到服务器)
$ git remote add master git@服务器地址:存储位置.git
$ git push origin origin
## 注:origin是初始init创建的本地仓库的分支名
查看
#查看配置
$ git config --list
#查看远端地址
$ git remote -v
#查看当前仓库状态
$ git status
$ git log
>>>fatal: bad default revision 'HEAD'
#(由于仓库里没有任提交在里面,所以它会报这个错。)
$ git add filename1 filename2 ...#添加文件到暂存区
#将刚才的修改提交到本地仓库中
$ git commit -m “modify map” #本次要提交的概要信息
>>>现在你执行一下git log 命令就会看到刚才的提交记录
$ git log
commit d6f2a112575187a5d7acc35697b0065ea62e6a80 #我们此次创建的提交的名字
Author: xxx
Date: xxx
#查看分支
$ git branch
$ git show-branch
$ git branch -av
修改
现在修改一下仓库里文件的内容,提交到仓库中去
#修改文件(如:在文件的最后添加一行)
$ echo "Git is Cool" >> readme.txt
$ git status #查看当前仓库的状态
# On branch master
# Changed but not updated: (修改了,但是还没有暂存的内容)
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
(没有修改可以被提交,使用 “git add” 命令添加文件到暂存区,或是使用“git commit -a” 命令强制提交当前目录下的所有文件)
查看修改部分
$ git diff #查看仓库里未暂存内容和仓库已提交内容的差异
diff --git a/readme.txt b/readme.txt
index 7b5bbd9..49ec0d6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,2 @@
hello Git
+Git is Cool
$ git add readme.txt
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: readme.txt
$ git commit -m "Git is Cool"
[master 45ff891] Git is Cool
1 files changed, 1 insertions(+), 0 deletions(-)
(一个文件被修改,一行插入,零行删除)
# 还可以直接根据提交的序列号查看
git log 08383abe8xxxxxx
git diff 08383abe8xxxxxx
git diff 08383abe8xxxxxx b4e1241d0exxxxx
Error记录
//删除了某一项版本控制下的内容,使用git add .无法在索引中删除该文件。
// 应使用
$ git add -A //stages所有文件
//而
$ git add . //只能stages新文件和被修改文件,没有被删除文件
$ rm JackyData03
$ git add . && git commit -m "remove JackyData03"
Error: warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal'...
#使用git commit -a -m提交删除
$ git commit -a -m "remove JackyData03"
Error: fatal: remote origin already exists.
$ git remote rm origin
$ git remote add origin git@...
//如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改gitconfig文件的内容
//找到你的github的安装路径, 找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!
$ git commit -m "modify map_box and segmentation"
#error:fatal: Not a git repository (or any parent up to mount parent /home/kineam)
#Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
"Deal:git init
why:don't find git contents,初始化一下"
github SSH密钥
1.设置git的user name和email:
$ git config --global user.name "xxx"
$ git config --global user.email "xxx@gmail.com"
2.生成SSH密钥过程:
cd ~/.ssh #查看是否已经有了ssh密钥,如果没有密钥则不会有此文件夹,有则备份删除
$ ssh-keygen -t rsa -C “xxx@gmail.com” #生成SSH密钥,按3个回车,密码为空。
ssh-add filename #添加密钥到ssh
#在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥
ssh git@github.com #测试
Warning: Permanently added 'github.com,192. ... .113' (RSA) to the list of known hosts.
PTY allocation request failed on channel 0
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
如果your_name正确显示你的ID,则说明成功设置了SSH公钥
添加SSH keys
ssh-keygen -t rsa
//系统提示输入文件保存位置等信息,连续敲三次回车即可
//在.ssh文件夹下生成了2个文件,一个公钥和一个私钥文件, id_rsa id_rsa.pub
//生成的SSH key文件保存在中~/.ssh/id_rsa.pub
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
//命令:这样配置之后就可以实现无密码登录本机
//如果需要登录到远程主机,只需要将authorized_keys文件发送到远程主机的~/.ssh/目录下。
vim ~/.ssh/id_rsa.pub
//接着拷贝.ssh/id_rsa.pub文件内的所以内容,将它粘帖到github帐号管理中的添加SSH key界面中
打开github帐号管理中的添加SSH key界面的步骤如下:
1. 登录github
2. 点击右上方的Accounting settings图标
3. 选择 SSH key
4. 点击 Add SSH key
上传代码
echo "some remarks" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/xxx/xxx.git
git push -u origin master
Error:Agent admitted failure to sign using the key
//解決方式 使用 ssh-add 指令将私钥 加进来 (根据个人的密匙命名不同更改 id_rsa)--实现无密码登录
$ ssh-add ~/.ssh/id_rsa
$ git push -u origin master
Counting objects: 80, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (75/75), done.
Writing objects: 100% (80/80), 2.45 MiB | 248.00 KiB/s, done.
Total 80 (delta 20), reused 0 (delta 0)
remote: Resolving deltas: 100% (20/20), done.
To git@github.com:Vanessa-feng/xxx.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
github 删除文件
//先删除本地文件
$ git add.
$ git commit -m "delete file"
$ git push
//直接删除github文件
git rm filename
git commit -m "remove file"
git push -u origin master