从需求和流程来初步学习git常用命令(适合新手)

流程图

在这里插入图片描述

Remote远程仓库也就是git仓库
Repository本地仓库使用init创建的本地仓库
Index缓存区使用add提交到Index暂存区
workplace工作区也就是电脑上显示的目录
add添加将文件添加到Index缓存区
commit提交将Index中的代码提交到本地仓库
push推送将本地代码推送到远程
clone克隆使用clone能够从git仓库拷贝项目到本地
fetch拉取使用fetch能够获取远程分支的改动
checkout切换分支切换不同的分支到工作区
pull拉取分支直接将远程分支拉取到本地当前分支

需求

从需求来了解git命令


需求1:获取远程代码
1.克隆远程仓库

git clone url

需求2:提交代码到本地仓库

git status 查看状态
git diff查看改变内容
git add . 跟踪所有改动过的文件
	git add <> 跟踪指定文件
git mv <old> <new> 文件改名
git rm <file> 删除文件
	git rm --cached <file> 停止跟踪文件但不删除
git commit -m "commit message" 提交所有更改过的文件
	git commit --amend 修改最后一次提交

需求3:远程操作

git remote -v           查看远程版本库信息
	git remote show <remote>        查看指定远程版本库信息
	git remote add <remote>  <url>       添加远程版本库
git fetch < remote>           从远程库获取代码
git pull <remote> <branch>     下载代码及快速合并
git push <remote> <branch>       上传代码及快速合并
	git push <remote> :<branch/tag-name>    删除远程分治或标签
	git push --tags      上传所有标签。

需求4:分支与标签的操作

git branch             显示所有本地分支
	git branch <new-branch>       创建新分支
	git branch  -d <branch>        删除所有本地分支
git checkout <branch/tag>     切换到指定分支或标签
git tag                        列出所有本地标签
	git tag <tagname>        基于最新提交创建标签
	git tag -d <tagname>             删除标签	

需求5:合并与衍合

git merge <branch>  合并指定分支到当前分支
git rebase <branch>  衍合指定分支到当前分支

需求6:查看log

git log  查看提交历史
git log -p <file> 查看指定文件的提交历史
git blame <file>  以列表的方式查看指定文件的提交历史

需求7:撤销操作

git reset --hard HEAD  撤销工作目录中所有未提交文件的修改内容
git checkout HEAD <file> 撤销指定文件未提交的内容
git resert <commit> 撤销提价的内容

流程

0.获取远程仓库并上传项目到分支

0.创建本地仓库
进入一个你想作为仓库的目录(如 Git_Repo/),初始化仓库:

git init

1.创建分支
每个分支的状态都是独立的,所以要先创建分支再获取远程仓库,如果不创建分支,则默认是在master分支下,现在创建一个分支branch0

git branch branch0

2.获取远程仓库
在这一步之前要,进行远程仓库的连接(见1.连接远程仓库),然后获取远程仓库,你需要给远程仓库一个本地的命名如remote0,这个命名只用于本分支。url为远程仓库的url。

git remote add remote0 'url' 

3.显示此时有哪些远程仓库

git remote -v

4.同步本地仓库的分支与远程仓库要管理的分支
就是将远程分支复制到本地仓库,分两步:
1.拉取本地没有的数据

git fetch remote0 master

2.合并分支

git merge remote0 master :[本地分支]  合并到本地分支
git merge remote0 master 合并到当前分支

此时,分支数据已经同步,此时可以进行更改。

5.添加所有更改或文件到index缓存

git add .

6.提交数据到本地仓库
引号内是对本次提交的注释,一定要有。

git commit -m '第一次提交数据'

此时,本地分支是更改后的项目,需要推送到远程分支

7.推送数据到远程分支

git push remote0 master : [本地分支]  推送本地分支数据到远程master分支
git push remote0 master 默认推送当前分支到远程的master分支

8.上传成功。
如果遇到错误 ! [rejected] master -> master (non-fast-forward),转到2.push出错

1.连接远程仓库

1.创建密匙
	$ ssh-keygen -t rsa -C "邮箱"
2.安装密匙
	复制rsa.pub的密匙到git的密匙添加中
3.测试连接
	$ ssh -T git@github.com

2.push出错
此错误的主要原因还是,远成分支和本地分支的数据不同步。
解决方法,直接拉取最新版的远程分支数据到本地的工作区,再从add那一步再走一遍
git pull origin master --allow-unrelated-history
3.文件管理:

0.创建本地仓库(在本地仓库的目录下,才能进行git操作)
	git init 
1.获取远程项目
	git clone url
2.显示远程项目
	ls
3.创建文件,
	touch test1.txt
4.显示本地仓库文件的状态:新增的文件前会有 ?? -s表示以简短的信息输出,如:A,AM,??。
	git status -s
5.将文件添加到本地的缓存区:添加到缓存区的文件的status为 A
	git add test1.txt
6.修改缓存区的文件,修改后,文件的statud是AM,需要再次进行add操作
	vim test.txt
7.查看缓存区与未写入缓存区的文件的区别,改动
	git diff
8.使用commit进行提交,由于每次提交都需要记录电子邮箱和名字,所以要先配置用户名和邮箱地址。
	$ git config --global user.name 'runoob'
	$ git config --global user.email test@runoob.com
9.使用commit进行提交,-m命令选项用以在命令行中提供注释
	 git commit -m '提交test1'
10.使用rm 移除文件,
	git rm <file>   移除文件
	git rm -f <file>   如果文件已经修改并暂存到缓存中,需要用强制删除
	git rm --cache README    仅清除缓冲区的文件 
	git rm -r *   递归删除*的所有目录
11.对文件进行修改使用mv
	git mv REDMAE README.md

4.远程仓库管理:

1.创建密匙
	$ ssh-keygen -t rsa -C "邮箱"
2.安装密匙
	复制rsa.pub的密匙到git的密匙添加中
3.测试连接
	$ ssh -T git@github.com
4.初始化本地仓库的几步
	mkdir <file>
	chmod README
	git init
	git add README
	git commit -m '备注信息'
5.提交本地仓库的文件到远程仓库
	git remote add name 'url'   将远程仓库(url)添加到本地,name为自己定义的名称
	git push -u origin master    将本地master分支的内容提交到remote中的仓库中
6.查看远程仓库,添加-v可以显示远程仓库的url
	git remote -v
7.提取远程仓库
	git fetch
8.获取远程仓库中的数据,并合并到本地所在任意分支
	git fetch [alias] 获取本地仓库没有的数据
	git merge [alias]/[branch] 将服务器上的任何更新合并到当前分支
	例:git fetch origin
		git merge origin/master
9.将数据推送到远程仓库
	git push [alias][branch] 推送新分支与数据到远端仓库
	例:git push origin master
10.删除远程仓库
	git remote rm [别名]
	例:$ git remote -v
		origin    git@github.com:tianqixin/runoob-git-test.git (fetch)
		origin    git@github.com:tianqixin/runoob-git-test.git (push)

		# 添加仓库 origin2
		$ git remote add origin2 git@github.com:tianqixin/runoob-git-test.git

		$ git remote -v
		origin    git@github.com:tianqixin/runoob-git-test.git (fetch)
		origin    git@github.com:tianqixin/runoob-git-test.git (push)
		origin2    git@github.com:tianqixin/runoob-git-test.git (fetch)
		origin2    git@github.com:tianqixin/runoob-git-test.git (push)

		# 删除仓库 origin2
		$ git remote rm origin2
		$ git remote -v
		origin    git@github.com:tianqixin/runoob-git-test.git (fetch)
		origin    git@github.com:tianqixin/runoob-git-test.git (push)
小结
从远程获取数据时:git pull 和 git fetch的区别:
git fetch:
	git fetch origin master:temp 将远程的master分支下载到temp分支中
	git diff temp   比较temp和本地master代码的区别
	git merge temp    将temp合并到master主分支中
	git branch - d temp   删除temp分支
直接使用fetch的话,需要两步:
	1.获取远程分支的数据到本地分支,可以选择下载到哪个分支。
	2.比较分支与master分支的不同,再进行合并。
git pull:
	git pull <远程主机名> <远程分支名>:<本地分支名> 冒号前面的参数1<=2个,后面的参数<=1个
	例:git pull remote master 将远程的master下载到本地的master
相当于git fetch 和 git merge
在实际应用中,git fetch 更加安全一些,
因为在merge之前可以查看diff,再决定是否合并。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值