Git简易使用手册--基础

meitu.jpg

git学习笔记

使用git bash来进行版本控制操作

1.初始化代码仓库:进入作为仓库的文件夹,使用git init 来初始仓库

$ git init

2.向仓库添加内容:

将当前修改的内容添加到暂存区:git add

将暂存区中的内容提交到仓库:git commit

$ git add
$ git commit -m '提交注释'

也可以指定添加某个单独文件,将文件名接在命令后,例:

$ git add helloworld.txt
$ git commit helloworld.txt

3.查看操作的历史记录:git log

$ git log

查看命令历史记录:git reflog

$ git reflog

4.在Git中,用==HEAD==表示当前版本,也就是最新的提交的版本,上一个版本就是HEAD^ ,上上一个版本就是HEAD^^ ,如果再往前追溯的话,为了避免写一长串^,可以写成HEAD~number,number就是追溯的版本数。

$ git reset --hard HEAD^


5.回到某个版本(在知道commit id的情况下):git reset --hard commit_id

$ git reset --hard commit_id

6.撤销修改:git checkout -- file,就是让这个文件回到最近一次git commit或git add时的状态。

$ git checkout -- file

7.从版本库中删除文件: git rm file,删除也是改动操作,也需要git commit到版本库中。

$ git rm file

8.提交到远程仓库,比如GitHub:

  • 第1步:创建SSH Key,引号中的内容就是你的邮箱。
$ ssh-keygen -t rsa -C "youremail@example.com"

之后一路回车,一切设置默认。

  • 第2步:在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥;登陆GitHub,打开“Account settings”,“SSH Keys”页面,然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。
  • 第3步:在GitHub新建一个仓库,将本地仓库关联到远程仓库,使用如下命令 :其中your github account 是你的github账号名称,repository是远程仓库名称;
$ git remote add origin git@github.com:your github account /repository.git

  • 第4步:将本地文件推送远程仓库中,到第一次推送到远程仓库中需要加-u参数:

    $ git push -u origin master

在此之后,推送文件到远程库就不需要-u参数了,命令简化如下:

$ git push origin master

9.当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

这是SSH连接验证,确保你的key在Github服务器上,输入yes,会将Github的key添加到本机的信任列表上,此后就不会出现警告了。

10.克隆远程库中的仓库:其中your github account是你的github账号,repository是你要克隆的仓库名称;

$ git clone git@github.com:your github account/repository.git

11.Git最重要的功能,分支管理:

创建并切换到分支上:branch替换为分支名称

$ git checkout -b branch

创建分支:

$ git branch

切换分支:

$ git checkout branch

合并指定分支到当前分支:

$ git merge branch

删除分支:

$ git branch -d branch

强制删除分支:

$ git branch -D branch

查看分支:

$ git branch

12.默认方法合并分支时是使用使用fast forward模式,合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

$ git merge --no-ff -m "xxxxx" branch

13.将当前工作区状态保存起来,以便下次继续工作:

$ git stash

恢复工作现场:

  • 一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
  • 另一种方式是用git stash pop,恢复的同时把stash内容也删了:

查看stash:

$ git stash list

14.查看远程库的信息,用git remote:

$ git remote

用git remote -v显示更详细的信息:

$ git remote -v

15.推送分支到远程库中:(branch为分支名称)

$ git push origin branch

16.推送到远程失败,先要从远程抓取分支,使用git pull

$ git pull

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令

$ git branch --set-upstream branch origin/branch

如果git pull出现冲突则需要先解决冲突,并在本地提交,然后重新推送。

标签: none

添加新评论