GitHub入门(逐步更新中)

这篇文章写的是在mac下利用Terminal来进行代码上传及其他基本操作的方法

认识git

工作区Working Directory:git init目录
版本库Repository:工作区中的子目录.git
暂存区:stage
分支:branch

上传代码流程

工作区=>add=>暂存区=>commit=>branch

git各类命令操作及相关名词解释

git配置

git的当前工作目录的配置文件一般存在如下路径:.git/config
当前用户的git配置文件一般存在如下路径:~/.gitconfig

设置名称邮箱

git config –global user.name “Your Name”
git config –global user.email you@example.com

若git保存的name和emaile有误,则进行修改,如下:

git commit –amend –author=’Your Name you@example.com

git显示颜色

git config –global color.ui true

设置alias

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1'
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

忽略文件配置

  1. 在git工作区创建.gitignore文件,把需要忽略掉的文件名填进去,git就会自动忽略掉这些文件,注意不要重头编写.gitignore文件,github已经为我们准备了各种配置文件,详情请查看https://github.com/github/gitignore
  2. 填写完.gitignore文件后,需要把该文件提交到Git上

忽略文件的原则是:

  • 忽略操作系统自动生成的文件,比如缩略图等;
  • 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  • 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

查看被忽略的文件

git check-ignore

强行添加被忽略的文件

git add -f filename

本地操作

把目录变成git可以管理的仓库

git init

查看状态

git status

可查看有change but not update的文件或add了没commit的文件

  • Untracked files:从来没add过,不受git控制
  • Changed but not updated:工作区更改了的文件,表示可以add

用暂存区中的版本库中的最新版本覆盖掉工作区的文件

git checkout [-filename]

  • Changes to be committed:暂存区中的文件,可以commit

版本回退

git reset [–hard] HEAD [filename]

  • unstage:取消掉当前的commit
  • HEAD:当前版本
  • HEAD\^:上一个版本
  • HEAD\^\^:上两个版本
  • HEAD~100:上100个版本

回退到上次代码提交时的状态

git reset –hard

这条命令会把你工作目录中所有未提交的内容清空
查看git里面有什么文件

git ls-files

查看日志

git log

  • –pretty=oneline:显示每个版本的id、message
  • –pretty=oneline –abbrev-commit:只显示版本id的前7位

查看文件的改动

git diff filename

查看相对于某个版本的改动

git diff HEAD –readme.txt

把工作区中的文件add到stage暂存区,即子目录.git下

git add filename1 filename2 …

暂存区的文件会显示status中的Changes to be committed:add了之后若再次修改需要再次add才能把修改后的文件commit上去

从版本库中删除

git rm file

把stage暂存区的文件一次性提交到版本库中所属分支上

git commit -m “本次提交所做的改动”

commit只会提交add进来时的状态,add了之后再做改变的不会commit

关联远程库

origin表示远程库,可理解为上传代码到远程库

git remote add origin git@server-name:path/repo-name.git
git remote add origin git@TeamServer(IP address):Project_name

更改已关联库

git remote set-url origin git_usr@teamservers:New_pro

查看已关联库

git remote -v

推送本地的最新修改到远程库master分支,注:第一次推送要加上-u参数

git push -u origin master
git push origin master
git push origin branch

查看可克隆的项目

ssh git@teamserver

克隆

git clone git@teamserver:project

从远程库拉取

git fetch [origin master](推荐)
git pull [origin master]

查看本地和远程的所有分支

git branch -a

把远程的origin/dev分支拷贝一份到本地新建的dev分支并跳到dev分支

git checkout -b dev origin/dev

分支

查看分支

git branch

新建分支

git branch

删除branch_name分支

git branch -d

强行删除未merge的分支

git branch -D feature-vulcan

切换到branch_name分支

git checkout

新建并切换到branch_name分支

git checkout -b

合并branch_name与当前分支并加上commit信息防止branch_name删除后信息丢失

git merge –no-ff -m “merge with no-ff” branch_name

工作栈

用于临时切换到别的分支修复bug,可再跳回来

保存现有的工作区到栈中

git stash

查看栈

git stash list

恢复工作区

git stash apply

删除栈中保存的工作区

git stash drop

恢复工作区并删除栈

git stash pop

临时修复bug流程代码示例
git satsh//保存现场
git checkout master
git checkout -b bugfix
...
git checkout master
git merge --no-ff -m "merged bug fix" bugfix
git branch -d bugfix
git checkoutdev//回到原来的分支
git stash list//查看栈
git stash pop//弹出原来的工作区
标签

给commitid号贴一个名字
查看标签(安装字母排列)

git tag

查看标签信息

git show

给最新的一次commit贴标签v1.0

git tag v1.0

给commitid为12356的贴标签v2.0

git tag v2.0 123456

制定标签名并加上说明文字

git tag -a v1.0 -m “version 1.0 released” 123456

-a参数换成-s参数才用psp标签

从本地删除标签

git tag -d v1.0

推送某个标签到远程

git push origin

推送所有标签到远程

git push origin –tags

从远程删除

git tag -d v1.0 && git push origin:res/tags/v1.0

上传代码

新建仓库

  1. 点击新建仓库


2. 填写相关信息

安装git

mac下必须先安装Xcode Command Line Tools
确认安装完成后,在Terminal下输入命令:git

初次运行Git前的配置——git config

Git自带一个git config的工具来帮助设置控制Git外观和行为的配置变量。这些变量存储在三个不同的位置:

  • /etc/gitconfig文件: 包含系统上每一个用户及他们仓库的通用配置。如果使用带有--system选项的git config时,它会从此文件读写配置变量。
  • ~/.gitconfig~/.config/git/config文件:只针对当前用户。可以传递--global选项让Git读写此文件。
    当前使用仓库的Git目录中的config文件(就是.git/config):针对该仓库。

每一个级别覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量。

用户信息

git config --global user.name "username" 
git config --global user.email "address@email.com"

文本编辑(默认是vim)

git config --global core.editor vim

检查配置信息

git config --list

创建SSH Key

Terminal中输入cd ~/.ssh查看有没有.ssh文件夹,如果能进入此文件夹则继续ls查看有没有id_rsaid_rsa.pub这两个文件,有了则不需再创建SSH Key了,没有输入cd ~回到用户目录,在Terminal上输入:

ssh-keygen -t rsa -C "address@email.com"

然后一路回车,然后在.ssh文件夹下就产生了这两个文件了

在代码托管平台添加公钥

Terminal中输入cat ~/.ssh/id_rsa.pub,复制文本中的内容,然后登陆github账号,找到settings,在左侧的Personal settings中找到SSH and GPG keys,点击New SSH Key按钮,标题随意,粘贴文本内容
最后,在Terminal中输入ssh -T git@github.com命令来验证这个key是否能正常工作,若是正常的,则会打印:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

warning不需理会

clone新建的repository到本地


Terminal中输入cd {PATH_TO_WHERE_YOU_WANT}到一个你想放代码的地方,并输入一下命令:

git clone https://...


这时会在目录下会生成对应的文件夹,文件夹里有一个README.md文件,将想要上传的代码放到此文件夹中

上传代码

Terminal中输入命令cd {PATH_TO_GIT_FOLDER}到需要上传的代码的所在文件夹中,输入一下命令:

git init

则出现

Reinitialized existing Git repository in /.../.git/

而且当前文件夹中还会出现.git文件夹
再输入:

git add *

此命令则表示上传当前文件夹中的所有文件,若想传单个文件,则应输入git add README.md
回车后则输入

git commit -m "..."

简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录
接着再输入

git remote add origin https://.../

若输出以下错误:

fatal: remote origin already exists.

则输入:

git remote rm origin

再重复执行以上命令,接着输入:

git push origin master

若输入以下错误:

error:failed to push som refs to.......

则输入:

git pull origin master

再重复输入以上命令
先把远程服务器github上面的文件拉先来,再push上去

最后你可以去GitHub上查看代码已经上传成功~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值