[github]git必会技能集合(入门与实践)

1:配置我的信息

git config --global user.name "name"
git config --global user.email "xx@qq.com"

2:配置显示信息

git config --global color.ui auto    #输出显示信息更易读

3:建立和添加密钥的方法

1:建立密钥
ssh-keygen -t rsa  -b 4096 -C "397916230@qq.com"
而后会要求你输入一个你能记住的密码
产生的三个内容须要注意:
    1:   key fingerprint
    2:  .ssh/id_rsa文件      私有密钥
    3:  .ssh/id_rsa.pub文件  公开密钥

2: add to ssh-agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

3:向github中添加公开密钥
在本身的github账号中添加了公开密钥以后,就能够用私有密钥进行认证了
在浏览器中登陆github账号->setting->SSH and GPG keys->add key 
(title随机取名,key的来源是id_rsa.pub文件中的内容,注意该文件的全部内容到复制到github中)

4:在shell中使用私人密钥与github进行通讯
 ssh -T git@github.com 
#这时会弹出一个对话框,让你输入密码,该密码为刚才建立密钥时输入的密码

4:经常使用小功能

watch: 关注某个项目的开发进展
following:关注某些程序员
follower:有哪些人关注你git

5:在命令行中向已经创建好的空repository中添加文件README.md

echo "# firt try to create repository using cmd line" >> README.md
git init
git add README.md  #添加文件到仓库中
git commit -m "firt commit" #提交文件时,添加的commit内容
git remote add origin  https://github.com/huangtao00/First.git
git push -u origin master  #push到上first.git这个仓库中 ,这一步要输入用户名,密码

6:向仓库中添加代码的流程

#还有一个更简单的方法,在浏览器中建立了仓库后,直接到cmd下git clone 以前建立的仓库便可 
#注意在浏览器中clone时必定选择使用Clone with SSH,这样只用输入一次密码,查看第3部分)
git clone git@github.com:huangtao00/CoolQrobot.git

git status  #查看一下当前本地建立的状态 
#编写要添加的程序源码
#下面是添加源码到仓库中
git add hello.py
git commit -m "add hello.py to repository" #后面push到远程repo时,会显示的信息
git log  #能够用来查看 你以前 在什么时间 提交过 commit
git push  #这样就把刚才add and commit的文件和信息上传到了远程仓库

#下次要加入新的文件,或是旧的文件须要改变后 上传时,仍是进行以下操做
git add filename
git commit -m "message"
git push 

#若是本身改了不少文件,已经不记得哪些文件本身改过了,可使用下面命令
#查看修改过,可是尚未被push到远程repo的文件
git status   #主要是用来显示本地建立的当前状态 

#若是当前目录中存在没有被添加到仓库中的文件时,该文件称为untracked files
#经过 git add命令把文件添加到repo中,此时git status能够看到 new file:

#若是git add以后,发现add的文件添加错了,使用下面的命令从stage中去除掉
git rm --cached filename
#而后再 git status时,能够发现文件又变成了 untracked files

#git commit的信息附到以前add的全部文件上
直接输入git commit时,vim会被打开,让你添加更加详细的提交信息

#当你输入git commit使用vim对以前add的文件添加了 提交信息后,后来又以为这些commit信息写的有问题,能够用下面的命令回到没到commit的状态 
git reset HEAD hello.py

#git log 查看什么人在什么时间进行了commit的操做
git log --pretty=short  #对每一个commit,只显示提交信息的第一行,方便观察
git log  README.md  #只显示与该文件有关的commit ,也可加目录 
#记住 git log这个命令很是强大,有不少参数,由于开发人员常常要看一下,之前本身或团队对工程里的源码作过哪些修改,须要慢慢掌握这个工具


#若是咱们改变了文件 可是没有add,这时文件改变状态 是在工做树中保存的
#若是咱们把改变后的文件git add以后,这时,文件改变的状态 就同步到了暂存区
#再使用git diff 就看不到区别了

#这里有一点要注意的,文件在本地时,有两个空间 工做树空间,暂存区空间,
#工做树空间-->add -->暂存区空间--->push -->远程仓库

git diff HEAD,能够查看最近的一次文件作了哪些修改 ,就是在commit前,能够用这个命令来看,文件所作的修改,若是项目很大时,这个命令颇有用的!!

#实际上咱们操做时,能够把全部文件慢慢的add,commit了以后,
#而后一般 git log来看全部commit,
#最后须要上传到远程repo时,才调用push,不要一个文件发生改变后,立刻push,没有必要
#文件改没改变,能够一般git status发现,而后git diff查看具体改变了什么

#删除远程仓库上文件的命令
git rm -f  file
git commit -m "delete file"
git push

#删除暂存区空间上的文件
git rm --cached file

7:包含其它子repo的目录添加失败

git rm -r --cached some-directory
git commit -m "Remove the now ignored directory some-directory"
git push -u origin master

8:git免密提交

#不使用密钥,只是将密码cache到memory
# Set git to use the credential memory cache ,默认15分钟后失效
git config --global credential.helper cache
# Set the cache to timeout after 1 hour (setting is in seconds)单位是秒
git config --global credential.helper 'cache --timeout=3600'

9:代码追溯

git checkout <tag>
git log    #to get sha number used below
git reset --hard  <sha>
相关文章
相关标签/搜索