使用git的基本操作,小白初学进

创建仓库文件夹
mkdir learngit

进入目录
cd learngit

把这个目录变成Git可以管理的仓库

git init

查看仓库当前状态
git status

添加命令(确保文件已经放到仓库目录下)
git add readme.txt

提交命令(可以一次提交多个操作)
git commit -m “进行的操作说明”

查看历史记录
git log

可以查看修改内容
git diff ‘文件名’

回退到上一个版本(比如回到第100个之前的版本HEAD~100)
HEAD 表示当前版本, HEAD^,HEAD^^表示前一个,两个版本
git reset –hard HEAD^

查看历史版本号
git log –pretty=oneline

回退版本后,想回到未来的版本
git reset –hard 想回到的版本号前几位数字
git reset –hard 1094a

用来记录你的每一次命令,可以查询未来版本号
git reflog

版本库(Repository)
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,
还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

git add命令实际上就是把要提交的所有修改放到暂存区(Stage),
然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的:
此时查看状态
$ git status
On branch master
nothing to commit, working tree clean

注意:git记录的是修改,不是文件
git diff HEAD – readme.txt命令可以查看工作区和版本库里面最新版本的区别

git checkout – file
把readme.txt文件在工作区的修改全部撤销,

git reset HEAD file
可以把暂存区的修改撤销掉(unstage),重新放回工作区
ex:
git reset HEAD readme.txt

git rm file
删除文件
git commit -m ‘sdf”
提交

删除文件但未commit,用以下命令恢复
git checkout – test.txt
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

删除文件且已经commit
git rm 并且提交了之后,就需要使用git reset –hard 版本号来回退了,因为此时版本库里也没有此文件,只能回退版本

创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "你的邮箱地址"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

登录github账户,点击settings,ssh and gpgkeys,进行ssh添加
起一个title名,打开id_rsa.pub,复制粘贴.AddKey成功!
SSH协议保证只有你才可以提交GitHub推送
在GitHub上新建一个仓库,起好库名
在本地运行如下关联远程库

git remote add origin https://github.com/kuaiqushangzixiba/learngit.git

注意:中间填写你自己的github账户名

第一次把本地库的所有内容推送到远程库上
git push -u origin master

以后在进行提交master分支所有内容
$ git push origin master

直接创建远程库,在github页面创建新的库
勾选Initialize this repository with a README
$ git clone [email protected]:kuaiqushangzixiba/gitskills.git
出现警告,Are you sure you want to continue connecting (yes/no)? 输入yes,这是第一次操作时github出现的.

使用git clone命令
$ git clone [email protected]:kuaiqushangzixiba/gitskills.git

Python@DESKTOP-BOOGIMN MINGW64 /d/learngit (master)
$ ls
gitskills/  readme.txt  test.txt

Python@DESKTOP-BOOGIMN MINGW64 /d/learngit (master)
$ cd gitskills/

Python@DESKTOP-BOOGIMN MINGW64 /d/learngit/gitskills (master)
$ ls
README.md

Python@DESKTOP-BOOGIMN MINGW64 /d/learngit/gitskills (master)
$ cat README.md
# gitskills

从远程库上clone了一份,在本地查看,已经存在了


分支管理

创建dev分支,然后切换到dev分支:
$ git checkout -b dev

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
g i t b r a n c h d e v git checkout dev

$ git merge dev
git merge命令用于合并指定分支到当前分支

删除dev分支
$ git branch -d dev

小结

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch

切换分支:git checkout

创建+切换分支:git checkout -b

合并某分支到当前分支:git merge

删除分支:git branch -d

命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;

命令git tag -a -m “blablabla…”可以指定标签信息;

命令git tag可以查看所有标签。

命令git push origin 可以推送一个本地标签;

命令git push origin –tags可以推送全部未推送过的本地标签;

命令git tag -d 可以删除一个本地标签;

命令git push origin :refs/tags/可以删除一个远程标签。

其实常用的命令只有那几条,

猜你喜欢

转载自blog.csdn.net/qq_42121640/article/details/81665101