得到git仓库

得到初始化的空仓库

git init	// 在当前文件夹,建立一个.git的隐藏文件夹,用作版本控制

从github上下载别人的仓库

git clone url	// url 为仓库的地址

查看工作状态

git status 	// 可以看到当前文件的控制状态

添加改动到暂存区

添加全部改动

git add .	// .表示所有文件(不包含被.gitignore文件忽略的文件)
git add * 	// *表示所有文件

添加指定改动

git add README.md	// 将README.md 的改动添加到暂存区

提交暂存区的改动到版本控制区

git commit -m "描述此次提交的信息"

查看版本提交记录

简单版

git log	// 查看当前分支的版本提交记录

更多参数版

// decorate 使得显示的结果加上一些修饰
// oneline 使得结果仅显示一行
// graph 使得结果呈图形化显示
// all 显示所有分支
git log --decorate --oneline --graph --all

版本回溯

将暂存区和版本控制区的版本回溯(默认 --mixed)

git reset HEAD~		// 回溯暂存区、版本控制区的状态到上一次提交
git reset HEAD~~	// 回溯到前两个版本
git reset HEAD~10	// 回溯到前10个版本
git reset 版本快照	// 回溯到指定的版本
git reset 版本快照	文件名/路径	// 回溯个别文件/路径,不会改变HEAD指针

仅将版本控制区的版本回溯

git reset HEAD~ --soft	// 回溯版本控制区的状态到上一次提交

将工作区、暂存区、版本控制区的版本回溯

git reset HEAD~ --hard 	// 回溯三个区的状态到上一次提交

撤消工作区的修改

// 原理:将暂存区的版本覆盖到工作区
git checkout -- 	// 撤消所有修改
git checkout -- filename // 撤消指定文件的修改

撤消add

// 如果将工作区的改动错误的add到了暂存区
// 工作原理:将暂存区回溯到版本控制区HEAD指向的版本
git reset HEAD 	// 撤消add

撤消commit

// 工作原理:回溯版本控制区的状态到上一次提交
git reset HEAD~ --soft	// 撤消commit

版本对比

对比两个版本之间,有哪些文件存在哪些变动
git代码分布式版本控制工具学习笔记_工具使用

创建分支

仅创建分支

git branch name	// name为新分支的名字

删除分支

git branch -d name 	// name为要删除的分支名

仅切换分支

git checkout name	// 切换到名为name的分支

创建并切换分支

git checkout -b name // 创建新分支name,并且切换到name分支

合并分支

git merge branchname 	// 将branchname分支与当前所在分支合并

冲突处理

当两个分支修改了同样的文件,并且修改不一致时就会产生冲突,在merge失败后,git会在冲突的文件中插入一些内容表示哪些部分出现了冲突。将该冲突的文件重新编辑整理好后,再次

git add 冲突的文件名	// 将处理好的文件添加到暂存区
git commit -m "此次合并的说明"	// 合并之后提交

提交到github仓库

//git push remoteName localBranch:remoteBranch
// -u 表示在.git/config中保存提交的配置,下次提交可以直接使用git push 
git push -u origin 要提交的分支    # 新分支的首次提交
git push                    # 之后提交

查看远程仓库路径

 git remote -v	
 // 得到下面两条
 // origin 是git仓库克隆的以及提交的地址
 origin  https://github.com/username/repository.git (fetch)
 origin  https://github.com/username/repository.git (push)

添加远程仓库路径

// pathname 表示路径名
git remote add pathname https://github.com/username/repository.git

同步项目

添加远程库的链接

// 添加远程库链接,并且用latest作为名字
git remote add latest https://github.com/username/repository.git

将远程库的新提交fetch下来

// 将latest链接对应仓库所有分支的新的提交fetch下来
git fetch latest

与本地合并

// 将fetch下来的新的提交,合并到本地分支
// 通常情况下master分支始终与主项目保持一致,因此先切换到主分支再合并
// 切换到master分支
git branch master
// 将远程库latest下的master分支的新提交与本地master分支合并
git merge latest/master