[Linux] Linux Git

Linux Git

环境搭建

1.install git sudo apt-get install git
2.创建Git账户
3.在git网页上进入Profile Setting,进入到SSH Keys.
4.生成ssh-key,免去每次git时需要输入密码的尴尬

cd ~/.ssh
ssh-keygen -t rsa -C "yourEmail@yourEmail.com"

找到你的安装目录,把id_rsa.pub中的key粘贴到网页中的SSH Keys中,名字随意写。
cat id_rsa.pub

5.配置Git,username and email

git config user.name "yourName"
git config user.email "yourEmail"

本地上传到Git

1.在要git的目录输入git init

2.创建一个本地仓库origin(默认名不需要改)并对应到git的仓库,http这部分是在网页上copy过来的。

git remote add origin http://xxx.xxx.com/name/folder.git

3.添加文件到本地仓库git add XXX

添加整个文件夹到本地仓库git add .

如果手残add多了,或者错了,拯救办法是git rm 1.txt or git rm -r myFolder

4.在项目中有不需要上传的文件或者文件夹(数据、生成的中间结果、history等),可以创建.gitignore文件。

# 此为注释 – 将被 Git 忽略
*.a       # 忽略所有 .a 结尾的文件
!lib.a    # 但 lib.a 除外
/TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/    # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

哪天心情不好,要把之前track的文件加入到.gitignore中,会发现并不好使。原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决办法是先把本地仓库的缓存删除。 git rm -r --cached

5.添加提交到本地仓库git commit -m "提交说明"
把本地仓库origin上传到远程的Git仓库中git push origin master

Git到本地

1.对已track的仓库更新git最新版git pull origin master
2.发现大佬写的好东西要copy下来git clone http://XXXXXXXXXXX

others

在windows上运行xshell时cat key之后,在复制的时候会存在出错的情况。

Key is invalid

Fingerprint has already been taken

Fingerprint cannot be generated

这是因为windows和linux编码的问题,复制出来的东西会有意想不到的回车和空格。 当时有效的一个办法是把从xshell中复制出来的sshKey先粘贴到office word中,然后把word中的在copy到http上。算是一个可供借鉴的解决方案吧。

Reference

http://www.linuxidc.com/Linux/2014-03/97821.htm
http://blog.sina.com.cn/s/blog_6b706e15010199p1.html
http://blog.csdn.net/fw0124/article/details/48243989
http://www.pfeng.org/archives/840
https://stackoverflow.com/questions/23537881/fingerprint-has-already-been-taken-gitlab

posted @ 2017-07-30 18:59  战侠歌1994  阅读(218)  评论(0编辑  收藏  举报