Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目;
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。
0、首先在电脑上安装好Git;
关于区域描述,git管理的目录叫工作区(.git文件夹除外),add 文件后的叫暂存区,提交后是分支(版本库);
常用命令
1、配置用户名和邮箱,打开Git Bash
- git config --global user.name "username"
- git config --global user.email "email"
- 使用git config --list查看已设用户配置
2、创建版本库
先在电脑合适的地方创建一个空目录,
打开Git Bash,输入cd ‘目录路径‘,
输入 git init (init表示管理这个目录);
3、添加文件
创建一个文件放在git管理的目录下,
git add 文件名 (该操作把文件添加到了暂存区),
git commit -m "提交描述" (该操作把文件添加到了分支),
使用git log --pretty=oneline命令可以看到每次提交的记录(commit的ID和描述),
git reflog命令记录你的每一次命令,里面有commit ID,方便回退;
4、文件比对:
git diff 是工作区和暂存区的对比
git diff -- cached 是暂存区和分支的对比
git diff HEAD -- readme.txt 工作区和分支的对比
5、版本回退
(1) 对于已提交的版本(commit): git reset --hard 要回退到的commit id (版本号不用写全,写前几位就行了);
(2)命令git checkout -- 文件名
意思就是,把该文件在工作区的修改全部撤销,这里有两种情况:
一种是该文件
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是该文件
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit
或git add
时的状态。
(3)对于已add到暂存区但未提交的,可以撤销修改,放回工作区:git reset HEAD 文件名 (HEAD表示最新版本);
(4)可以使用 git status查看当前暂存区的状态;
6、文件删除
可以先手动在目录(工作区)删除文件,或者用 rm 文件名 删除文件;
然后可以用git status看到哪些文件被删了,此时工作区和版本库就不一致了,此时可以:
(1)用git rm 文件名 把版本库的也删掉;
(2)是误删手动误删时,可以用git checkout -- 文件名 命令来恢复(git checkout是把版本库的版本替换工作区的版本,回退删除或修改);
7、分支管理
(1)创建和合并分支
创建一个分支,可以先在分支上修改内容,再选择合并到主分支或者撤销修改;
可以在分支上修改文件,并add和commit后,再切换回主分支,分支合并,再删除不用了的分支;
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
强行删除:git branch -D <name>
(2)分支历史
若使用git merger 分支名合并分支,再删除分支后,会丢掉分支信息,可以使用git merge --no-ff -m "提交描述" 分支名
命令来合并,合并后有历史分支,可以使用git log 查询;
(3)暂存当前分支
使用 git stash 把当前分支‘储藏’起来,干完其它事情再回来接着用分支;
通过git stash list 查看储藏的分支,用 git stash apply [email protected]{分支序号} 恢复;
8、分支合并冲突
若两个分支所修改的文件合并后有所冲突,可以用 git status 看到冲突,手动去文件里解决修改冲突,再add,commit;
用 git log --graph --pretty=oneline --abbrev-commit
命令可以看到分支合并图。
使用远程仓库Github
1、配置
(1)首先应去github官网注册一个账号;
(2)添加SSH:登陆Github - 打开Account settings - 打开SSH Keys页面,根据需要填写title,在文本框粘贴来自C:\Users\管理员名\.ssh\id_rsa.pub文件的内容,点击Add Key;
2、添加远程库(本地已有git仓库,又想在GitHub上创建一个仓库,并把两个库关联起来)
(1)本地仓库建好后,在GitHub上创建一个仓库(在头像旁边点添加新库-填入仓库名-点创建);
(2)在本地Git Bash输入git remote add origin git @github.com:github用户名/新建仓库名.git
origin就是远程库名(当然也可以写为其它),可以使用git remote -v显示远程库信息
(3)把本地库指定分支全部推送到远程库对应分支:git push -u origin master (master是主分支;-u 表示把指定远程master关联起来);
3、从远程仓库克隆(远程库已建好了,本地没有)
(1) 使用git clone [email protected]:github用户名/远程仓库名.git 命令,克隆完后可以在当前目录下看到克隆下来的仓库
(2)使用 cd ‘仓库目录路径‘ 可以转换当前管理的仓库目录;
4、