1、新建空目录;2、git init 把这个目录变成Git可以管理的仓库:
git只能跟踪文本类文件变化,不能管理跟踪二进制类
千万不要使用记事本编辑代码,建议使用UTF-8 without BOM的notpad++
【git add -- file】将文件从工作区添加到暂存区;
【git status】查看暂存区内容
【git commit -m ""】将暂存区内容提交到本地仓库,纳入版本管理中
【git diff filename】查看文件修改内容(与当前head版本比)
【git log】显示从最近到最远的提交日志(被commit了才会被管理,才会被显示) -》 git log --pretty==oneline 优化显示在一行
git中,使用HEAD表示最新版本,则上一个版本是 HEAD^,上上一个版本就是 HEAD^^,。。往上100个版本就是 HEAD~100; 若要回退到某个版本使用 git reset --hard HEAD^
【git reset --hard commit_id】
使用reset回退之后,再次 git log 则不会显示之后的新版本了,如本来今天在head版本,回退到昨天的head^之后,再次git log,则不会显示今天的原head版
git log 显示出的信息会有具体的版本号(十六位的一大串SHA计算出的数字,就是这里的commit_id),只要能找到这个版本号,哪怕已经reset老版本了,也可以使用 git reset --hard commit_id又回到“未来”。。
如果版本号是在找不到了,使用 git reflog 会显示所有时间线上 的log标记,,就可以找到commit_id了。。。
【工作区 working directory】.git 文件所在的目录区
【暂存区 stage】git add后修改临时存放的地方,表示可以准备提交到本地版本库了,git status可以查看暂存区内容
【本地版本库】.git内的内容,包含了stage和commit后的内容
【git add --> git commit -m "" --> git push】,中间随时可以 git status 查看暂存区内容
修改管理
git commit只会提交暂存区的内容;若本地修改没有add到暂存区中,则不会被提交
【git chekout -- file】丢弃工作区修改
【git reset HEAD file】清空暂存区某file文件,相当于 unstage (git reset
命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD
时,表示最新的版本)
场景一:若本地修改了,但还未add到暂存区中,想要丢弃工作区修改,直接 git checkout -- file 即可
场景二:若本地修改了,且已经add到了暂存区中,还没commit,需要 先 git reset HEAD file 清空unstage暂存区,再 git checkout -- file 丢弃工作区修改即可
场景三:若修改已经commit了,版本库已经控制了,想要回退,直接 git reset commit_id 即可(版本回退)
【git rm file】将文件删除操作 添加到暂存区
场景一:确实需要删除某文件并提交到版本库,则 首先手动删除文件,再 git add/rm file 提交到暂存,再 git commit 提交到版本库即可(此时 add 和 rm 命令效果一致)
场景二:手动误删了文件,想要恢复。因为虽然工作区删掉了,但是版本库中还有,因此直接 git checkout -- file 即可(其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”)
【生成SSH key】ssh-keygen -t rsa -C "some@example.com"
这样会在用户主目录下 生成 .ssh 目录,内有 id_rsa 和 id_rsa.pub 两个文件,分别是私钥和公钥,将公钥添加到 github的账户中,就可以向github这个账户推送内容了;一个github账户可以存多个ssh key,即多方不同 都向中央仓库推送代码
新建好github远程仓库,需要和本地仓库做关联:
【git remote add origin git@server-name:sskk.git】在本地添加远程仓库(git remote 表示远程相关操作,add添加远程仓库操作,origin 远程仓库的名称(git默认的,也可以命名为别的名字,但推荐这个),git@server-name:sskk.git 具体的远程仓库的git地址)
【git push -u origin master】本地推送到远程仓库origin的master分支上(-u表示 set-upstream,即全部索引提交;origin master 远程origin的master分支,master默认的主干名)
【git clone git@server-name:sskk.git】直接在本地克隆一个远程仓库,直接就建立了关联
原文:https://www.cnblogs.com/alison-lxj/p/11156055.html