1.
创建git仓库
1)创建文件夹(名称最好全英文)
2)切换到创建的文件夹
3)执行 < git init > 命令,将当前目录设置为git仓库
2.
将文件放在仓库
1)切换到仓库目录或其子目录
2)创建目标文件
3)执行命令 < git add <filename.suffix> > 将文件提交到仓库中的.git版本区中的暂存区
4)执行命令 < git commit -m “注释” > 将文件从版本区中的暂存区提交到版本区的当前分支
3.
查看仓库文件状态
1)切换到仓库目录或其子目录
2)执行命令 < git status > 查看目录及其子目录中文件的状态
4.
查看某个文件当前版本修改的内容
1)切换到仓库目录或其子目录
2)执行命令 < git diff <filename.suffix> >
5.
提交修改
1)切换到仓库目录或其子目录
2)执行命令 < git add <filename.suffix> > 将文件提交到仓库
3)执行命令 < git commit -m “注释” > 将文件提交到仓库
6.
查看版本历史记录日志
1)切换到仓库目录或其子目录
2)执行命令 < git log [ –pretty=oneline ] > 查看当前目录及其子目录的文件提交日志,–pretty=oneline参数可以简化输出信息
7.
回退版本
1)切换到仓库目录或其子目录
2)执行命令 < git reset –hard HEAD^> 其中HEAD表示当前版本,上一版本在HEAD后面加
符号,上上版本HEAD
^,多版本可以使用HEAD~100
– 若回退后悔了,可以使用命令< git reset –hard <commit_id> >,注:该操作只能在命令行窗口没有关掉,并且需要知道版本ID(可以从日志中查看到),版本号不需要写全,可以只写前几位
– 若回退后悔了,且找不到原来的版本号或者已关闭命令行窗口,我们可以使用< git reflog >查看我们的命令记录,从输出的内容中,我们可以获取到commit_id,然后可以使用上面的版本回退命令回退
8.
撤销修改
1)切换到仓库目录或其子目录
2)使用命令 < git checkout – <filename.suffix> > 可以丢弃工作区的修改
– 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
– 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态
3)如果将修改已经提交到了缓存区,我们可以使用< git reset HEAD <filename.suffix> >命令 将缓存区的修改撤销掉
9.
删除文件
1)在目录中删除文件
2)git切换到仓库目录或其子目录
3)执行命令 < git rm <filename.suffix> > 删除文件
4)执行命令 < git commit -m “注释”>
注:如果删除错误,使用< git checkout – <filename.suffix> >回退
10.
创建SSH Key
1)执行命令ssh-keygen -t rsa -C “
@
.**”
2)一路选择默认
3)用户主目录的.ssh目录中会生成id_rsa和id_rsa.pub这两个文件
4)登陆GitHub,打开“Account settings”,“SSH Keys”页面,然后点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”。
11.
添加远程库
1)登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库
– 在Repository name填入仓库名,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库
2)本地执行命令< git remote add git@github.com:/.git>将本地仓库与远程仓库相连接
3)本地执行命令< git push -u master > 将本地仓库的当前分支push到远程仓库 -u参数一般在第一次push时使用,以后可以省略
12.
从远程库克隆(从零开始,即没有本地库时,建议先创建远程库,然后从远程)
1)登录GitHub,创建远程库
–勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。
2)本地执行命令 < git clone git@github.com:/.git>克隆一个本地库
13.
创建分支
1)切换到项目目录
2)执行命令 < git checkout -b > ===== < git branch > + < git checkout > 创建并切换到制定分支
14.
查看当前项目分支
1)切换到项目目录
2)执行命令 < git branch > 查看当前分支,命令会列出所有分支,当前分支前面会标一个*号。
15.
合并分支
1)切换到项目目录
2)执行命令 < git merge > 用于合并指定分支到当前分支,所以在合并前需要先把分支切换到要合并的分支,比如master
3)用带参数的日志命令< git log –graph –pretty=oneline –abbrev-commit > 可以查看分支合并情况 ,–pretty=oneline:简化日志信息,一行显示 –abbrev-commit:提交校验码缩略显示
16.
删除分支
1)切换到项目目录
2)执行命令< git branch -d > 注:删除分支时,应该HEAD不指向到要删除的分支
注:如果有信息未合并,此时不能删除,如果需要强制删除,可以将 -d 换为 -D
17.
切换分支
1)切换到项目目录
2)执行命令 < git checkout >
18.
强制禁用Fast forward分支合并
1)切换到项目目录
2)执行命令< git merge –no-ff -m “提交描述” dev > -m 是因为本次合并要创建一个新的commit
注:Fast forward这种模式下,删除分支后,会丢掉分支信息
19.
分支备份
1)切换到项目目录
2)执行命令 < git stash > 把当前分支1工作现场“储藏”起来,等以后恢复现场后继续工作,一般用于在开发到一半时,遇到主线bug,需要紧急修复bug,将当前分支信息备份储存,在bug修复后将现场恢复。
…处理其他事情…
3)切换到分支1
4)执行命令 < git stash list > 查看保存的备份列表
5)执行命令 < git stash apply stash@{0} > 恢复指定的备份
20.
本地分支查看远程仓库信息
1)本地执行命令 < git remote [-v]> -v参数用于显示更详细的信息
21.
推送分支:就是把该分支上的所有本地提交推送到远程库
1)本地执行命令 < git push <远程主机名> <本地分支名>:<远程分支名>> //若本地分支名和远程分支名相同,可以只写一个
注:本地分支名可以为指定分支,无论当前HEAD是否在指定分支上
22.
多人在远程分支开发冲突解决
1)首先用< git pull > 把最新的提交从远程分支抓取下来,注:有时git pull也会失败,提示no tracking information,原因是没有指定本地dev分支与远程origin/dev分支的链接,可以使用< git branch –set-upstream-to=<远程主机名>/<远程分支名> <本地分支名> > 命令设置本地分支与远程分支的链接
2)在本地合并,解决冲突
3)冲突解决完后执行 commit ,然后 push
23.
免密码登录
1)Git Bash执行 : ssh-keygen -t rsa -C “你的Git注册邮箱” -b 4096生成公钥和私钥 注意:如果使用github导出的话可能会报RSA算法的问题,可以替换成ed25519算法
2)将rsa.pub公钥文件内容复制到gitlab的setting-SSH key中生成一个key
3)使用PuTTYgen程序将私钥文件生成对应的ppk文件
4)使用Pageant程序将生成的PPK文件添加到key中
5)使用git clone 克隆代码
6)若clone过程需要密码,且账号密码错误,可以在Git Bash中执行ssh -T git@xxxx 登录,如果还是需要密码,可能是git客户端和gitlab服务器IP地址不同,可以使用ifconfig eth0 192.168.1.1(举例) netmask 255.255.255.0重新设置IP