git命令使用笔记

本文主要是记录常用的git命令,环境:win7 64位 命令面板:Git Bash
推荐用可视化工具,如TortoiseGit,操作非常简单。但是我觉得作为一名合格的程序员,通过命令行提交代码是一件可以装逼的事,哈哈哈。。。

设置Git的username和email

1
2
$ git config --global user.name "U_can"
$ git config --global user.email "xxx@qq.com"

查看之前是否生成过ssh密钥

1
$ cd ~/.ssh

进入到.ssh目录下(如果没有该目录,则直接跳到生成密钥ssh-keygen ),显示该目录下的所有文件:ls

1
$ 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
2
Enter passphrase for key '/c/Users/9007656/.ssh/id_rsa':
Hi UWcan! You've successfully authenticated, but GitHub does not provide shell a ccess.

因为我设置过密码,所以会提示我先输入密码,输入密码之后回车,然后显示Hi…,说明我已经正确连接了

创建仓库,克隆远程代码到本地

准备工作

1
2
3
4
5
//进入到你要克隆代码的文件夹web
$ cd web
//如果远程没有仓库,可以在Tms里面初始化仓库,产生.git文件,如果克隆远程仓库,会自动有.git文件,不需要初始化
$ git init
#Initialized empty Git repository in f:/web/.git/

克隆远程文件

1
2
3
4
5
6
7
8
9
$ git clone git@gitlab.fmkeji.com:9003931/TMS.git
Cloning into 'TMS'...
Enter passphrase for key '/c/Users/9007656/.ssh/id_rsa':
remote: Counting objects: 9526, done.
remote: Compressing objects: 100% (4748/4748), done.
remote: Total 9526 (delta 4791), reused 9239 (delta 4576)
Receiving objects: 100% (9526/9526), 11.54 MiB | 9.84 MiB/s, done.
Resolving deltas: 100% (4791/4791), done.
Checking connectivity... done.

此时已经成功将代码克隆到本地了

添加文件

把文件修改添加到暂存区

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分支合并到develop

1
$ git merge master

删除分支

1
2
3
4
$ git branch -d develop
#查看所有分支
$ git branch
*master

说明develop分支已经成功删除

热评文章