1.设置邮箱,用户名
git config --global user.name +用户名
git config --global user.email +邮箱
2.创建版本库
进入一个空目录下,输入命令: git init
3.将本地文件放入git 仓库中
git add +文件名
git commit -m +"提示信息"
4.git status 查看仓库状态
git diff 查看修改的内容(不常用)
git log 查看提交代码的日志(时间以及备注信息)
git log --pretty=oneline 日志一行显示
5.版本回退
git reset --hard HEAD^ 回退到上一个版本
git reset --hard HEAD^^ 回退到上上个版本
git reset --hard HEAD +版本号 回退到具体版本号(版本号写5位,不用全部写)
6.git reflog 记录每次的命令
7.撤销操作
a.文件修改后,未执行git add操作,还在工作区,此时回退到与版本库完全一样的命令:git checkout -- +文件名,修改内容被删除
b.文件已上传到暂存区(即已执行完,git add 命令),又做了修改,则执行撤销命令(git checkout -- +文件名),文件又回到暂存区的状态
例子:文本内容【123】,执行git add 命令,修改文件内容【123456】,执行git checkout -- ,则文件内容为【123】
总之,就是让这个filename 文件回到最后一次 git commit 或git add时的状态
8.设置ssh-key
ssh-keygen -t rsa -C +邮箱
进入到生成公钥,私钥的目录里,粘贴出来公钥包含邮箱信息,添加到github中,在github页面中setting中设置,添加asskey
9.验证是否添加成功:
执行命令:ssh [email protected],输入yes后,出现success ,并且查看github官网钥匙变绿
10.创建远程仓库
在github的页面上操作,添加新的仓库
11.关联本地仓库与远程仓库
git remote add origin +远程仓库地址(远程仓库地址)
12.删除关联:
git remote rm origin
13.推送本地库内容到远程仓库
a.先将远程仓库内容,拉取到本地:git pull origin master(由于新创建的远程仓库内容为空,此时会报错“fatal: couldn't find remote ref master”,这个不用管,可直接执行下一步)
b.将本地内容推送到远程仓库上:git push origin master
14.正常工作中,一般是先有远程库,再有本地库
git clone +远程仓库地址 (远程仓库地址)
15.设置部分文件不推送
在git中执行命令:touch .gitignore(创建该文件,文件名不要修改)
在.gitignore文件中,加入某个文件夹的名字,该文件就不会被推送到远程仓库
16.分支相关
创建分支:git branch +分支名
切换分支:git checkout +分支名
创建并切换分支:git checkout -b +分支名
查看当前分支:git branch
17.将分支上代码合并到master
a.首先将分支切换到 master 分支:git checkout master
b.执行命令:git merge + 分支名
18.创建远程仓库分支【在远程仓库创建与本地仓库同样的分支,并将本地分支内容推送到远程】
在本地分支下执行下面的命令:
a.git push --set-upstream origin +分支名
b.之后在该分支下修改代码后,直接执行:git push origin (即可推送到远程分支)
19.clone非master分支【无论远程仓库有几个分支,clone时,只会clone master分支,若要clone其他分支,看下面】
a.先在本地空文件夹下,执行:git clone +远程分支名(复制远程仓库master分支)
b.然后在本地创建与远程仓库一样的分支(非master分支):git checkout -b +分支名
c.在该分支下执行:git pull origin + 分支名(把远程仓库中其他分支内容复制到本地-----同名分支下,其余操作与上面一样)
20.解决冲突
若master分支与其他分支都修改同一个,且均操作了git commit 命令
(手动删除)产生冲突后,应该查看原文件,处于<<<<与===之间的就是冲突内容,需要手动删除其中一方的,然后提交
21.查看冲突日志:git log --graph
22.给代码加上标签: git tag +标签名
代码回退到某个版本;git checkout +标签名
推送标签到远程仓库:git push origin +标签名