创建第一个项目
1、在码云上创建一个项目 Sunny(随意)
2、安装GIT ,配置git
`git config --global user.name "你的名字或昵称"`
`git config --global user.email "你的邮箱"`
3、在本地创建一个目录 D:/Sunny
4、打开git cmd,切换到上面的目录,完成本地项目初始化
git init
git remote add origin <你的项目地址> //https://gitee.com/你的码云用户名/Sunny
5、第一次提交项目
git pull origin master //更新
git add .//或者 git add 文件名
git commit -m '添加注释'
git push origin master //上传
SSH
因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
- 创建SSH Key
ssh-keygen -t ras -C "[youremail]"
在用户下会生成.ssh
目录,目录下会有id_rsa
和id_rsa.pub
这两个文件。id_rsa.pub
是公钥,另外一个是私钥。 - 设置远程仓库里的SSH Key
在设置中,添加上公钥内容
Git概念
-
工作区和暂存区
git add
就是将文件修改的内容从工作区添加到暂存区
Git基本操作
-
从码云克隆项目
git clone 远程仓库地址
-
修改仓库名
一般来说 默认的仓库名都是origin
git remote rename '旧名字' 新修改的名字
-
查看当前仓库对应的远程仓库地址
git remote -v
-
关联仓库
git remote add origin [地址]
-
推送
git push -u origin master
(第一次推送当前分支master与远程仓库的master分支建立追踪关系,建立之后,使用git push/pull
命令会自动推送/更新追踪关系的远程分支)
git push origin master
- 从远程更新下载:
git pull
( 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建) -
提交
git add [fileName]
提交到缓存区
git commit -m "[msg]"
提交
-
删除
git d [fileName]
删除文件:git rm [fileName]
-
分支
本地创建切换分支:git checkout -b [name]
(上面的句子包括以下两个操作)
创建分支:git branch [name]
切换分支:git checkout [name]
查看所有分支: git branch
查看所有分支的版本信息: git branch -v
合并分支:git merge [name]
(合并分支时候,GIT会使用Fast forward
模式,删除分支后,会丢掉分支信息。)
普通合并分支:git merge --no-ff -m "[msg]" [name]
(在合并时,会生成新的commit,可以保留分支的历史记录)
删除分支:git branch -d [name]
强制删除未合并的分支:git branch -D [name]
解决冲突(当git无法自动合并分支的时候,需要解决冲突在提交)
查看分支合并图:git log --graph
查看本地分支和远程分支的追踪关系: git branch -vv
克隆的时候默认克隆master分支,其他分支需在本地创建并与远程关联:git checkout -b [name] origin/[name]
设置本地分支与远程分支的链接:git branch --set-upstream-to=origin/[name] [name]
-
stash
隐藏现在的工作区:git stash
(可以用于修复bug)
显示stash中隐藏的工作区:git stash list
恢复隐藏的工作区:git stash apply ([listName])
删除stash中储存的工作区:git stash drop
恢复并删除: git stash pop
-
标签管理
创建标签:
1、git tag [tagName]
2、git tag -a [tagName] -m "[tag desrible]"
3、git tag [tagName] [commitId]
罗列标签:git tag
查看标签信息:git show [tagName]
删除标签:git tag -d [tagName]
推送标签到远程库:
1、git push origin [tagName]
2、git push origin --tags
推送到远程后删除标签:
(先删除本地的标签)
git push origin :refs/tags/[tagName]
-
版本
版本回退:
1、git reset --hard [commitId]
根据commit号来回退
2、git reset --hard HEAD~[number]
回退至上N个版本
查看历史命令:git reflog
丢弃工作区的修改:git checkout -- [file]
丢弃缓存区中的内容:git reset HEAD [file]
-
日志
git log
简化log:git log --pretty=oneline