本文主要是记录常用的git命令,环境:win7 64位 命令面板:Git Bash
推荐用可视化工具,如TortoiseGit,操作非常简单。但是我觉得作为一名合格的程序员,通过命令行提交代码是一件可以装逼的事,哈哈哈。。。
设置Git的username和email
1 | $ git config --global user.name "U_can" |
查看之前是否生成过ssh密钥
1 | $ cd ~/.ssh |
进入到.ssh目录下(如果没有该目录,则直接跳到生成密钥ssh-keygen ),显示该目录下的所有文件:ls1
$ cd ls
备注:$ ls -ah可以查看隐藏的文件
执行完命令后会显示目录下有这三个文件:id_rsa(私钥,不能泄露) id_rsa.pub(对应的公钥,可以公开) known_hosts,说明已经生成过密钥
如果没有生成过密钥,则执行下面的命令:1
$ ssh-keygen -t rsa -C "xxx@qq.com"
生成密钥过程中会提示让你输入密码,这个密码会让你在以后提交代码的过程中使用,不过也可以不用设置。
之后会在该路径下生成密钥文件:C:\Users\9007656.ssh
如果你要提交代码到远程托管仓库(如github或gitLab),则需要将你生成的公钥(.pub)添加到上面sshkey,添加完成之后验证这个key是否正常:1
$ ssh -T git@github.com
1 | Enter passphrase for key '/c/Users/9007656/.ssh/id_rsa': |
因为我设置过密码,所以会提示我先输入密码,输入密码之后回车,然后显示Hi…,说明我已经正确连接了
创建仓库,克隆远程代码到本地
准备工作
1 | //进入到你要克隆代码的文件夹web |
克隆远程文件
1 | $ git clone git@gitlab.fmkeji.com:9003931/TMS.git |
此时已经成功将代码克隆到本地了
添加文件
把文件修改添加到暂存区1
$ git add <fileName>
提交文件
把暂存区的所有内容提交到当前分支1
$ git commit -m "提交备注"
查看文件状态
1 | $ git status |
查看修改内容
1 | $ git diff |
版本回退、撤回修改
如果你提交了修改后boss或产品又说不用修改了,就用之前的方案。那么你可以直接用git还原到修改前的状态,而不用修改代码,省了你很多麻烦。
1
2
3$ git log
或
$ git log --pretty=online
这样可以看到你提交代码的记录,方便你查询回退到哪个版本,比如我们现在要把版本回退到如:2222,
1
2$ git reset --hard 2222
HEAD is now at 3628164 append GPL
这样就可以回退到你想到的版本了。
如果你回退之后boss或产品大大又说还是改回来吧,此时心里万只草泥马在奔腾,不过没关系,git很能干的。1
$ git reflog
就这么简单,代码回来了
还原修改
如果你修改了文件之后,还没提交,boss通知你说不需要修改了,那么你直接将该文件还原就行了1
$ git checkout -- <file>
命令中的–很重要,没有–,就变成了“切换到另一个分支”的命令
关联远程库并推送代码
1 | $ git remost add origin git@远程仓库地址 |
关联后,使用命令1
$ git push -u origin master
第一次推送master分支的所有内容,以后的修改推送可以省略-u
创建、切换分支
创建分支
1 | $ git branch develop |
切换分支
1 | $ git checkout develop |
创建并切换分支
1 | $ git checkout -b develop |
合并分支
假设当前分支是develop,此时我想把master分支合并到develop1
$ git merge master
删除分支
1 | $ git branch -d develop |
说明develop分支已经成功删除