Git常用命令

Git 常用命令

  • Git 常用命令
    • 说明
    • 创建版本库repository
    • 把文件添加到版本库
    • 查看状态和修改
    • 版本回退
    • 撤销修改
    • 删除
      • 删除文件
      • 撤销误删
    • Git仓库托管
    • 添加远程repository
    • 从远程库克隆
    • 分支管理
    • 多人协作

说明

本文记录最常用到的git命令。
有用的学习资料:
Git 教程
浅显易懂的Git教程
GIT分支管理是一门艺术

创建版本库(repository)

安装完Git后,第一件事就是config。
每个机器都必须验证:你的名字和Email地址。

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
#--global参数,表示你这台机器上所有的Git仓库都会使用这个配置

初始化一个Git仓库,使用git init命令
先创建一个目录,在该目录下的所有文件都可以被Git管理起来。
需要注意的是:所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。二进制文件,如图片,word文档等均不可跟踪其更改的细节

#首先创建项目的目录
$ mkdir your_project_folder
$ cd your_project_folder
#在创建项目的目录下,使用git init命令把这个目录变成Git可以管理的仓库
$ git init

把文件添加到版本库

提交代码的更改一共分2个阶段。

1).从工作目录,提交到暂存区stage
2).从stage提交到master

从工作目录提交到stage,需要用add(添加)或者rm命令(删除),只提交到stage,而没有提交到master,是不会自动同步到master的。

从stage提交到master用commit命令。

以readme.txt为例子,这里readme.txt是在your_project_folder目录下(或者子文件夹里)。
首先把文件添加到仓库

$ git add readme.txt

然后,文件提交到仓库

#-m后面输入的是本次提交的说明,方便找改动记录。
$ git commit -m "wrote a readme file"

查看状态和修改

  • 随时掌握工作区的状态,使用git status命令。
  • 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。(git diff即查看difference)

版本回退

  • 用git log可以查看提交历史,以便确定要回退到哪个版本。

  • HEAD指向的版本就是当前版本,使用命令git reset –hard commit_id版本回退

  • git reflog查看命令历史,以便确定要回到未来的哪个版本

工作区和暂存区的解释

撤销修改

对于文件 myfile.txt

① 修改后 未add(添加到暂存区) 需要撤销修改时:
git checkout – myfile.txt 或 手动删除工作区修改
工作区 : clean 暂存区: clean
② 修改后 add了(未commit) 再次修改文件 要撤销第二次修改时:
git checkout – myfile.txt (将暂存区恢复到工作区)
暂存区有第一次的修改需要commit
③ 修改后 add了(未commit),需要撤销修改时:
git reset HEAD myfile.txt (将暂存区修改删除)
此时工作区的修改还未撤销
git checkout – myfile.txt (撤销工作区修改)
④ 修改后 add并commit了,需要撤销修改时:
git reset –hard HEAD^ (版本回退)**

删除

对工作区的文件,进行删除(比如使用rm命令或者手动删除),然后又以下两种情况,一是打算在版本库repository里也删除她,或者是误删得还原。

删除文件

  • 确实要从版本库repository中删除该文件,用命令git rm删掉,并且git commit。

撤销误删

  • git checkout 其实是用版本库里的版本替换工作区的版本。

Git仓库托管

注册一个GitHub账号,就可以免费获得Git远程仓库。
创建SSH Key。

$ ssh-keygen -t rsa -C "[email protected]"

后面的[email protected]改为你在github上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹(而不是当前工作区的文件夹),打开id_rsa.pub,复制里面的key。
回到github上,进入 Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的key。

在开始安装了git后是设置了用户名和地址。
git config –global user.name “Your Name”
git config –global user.email “[email protected]

这里创建ssh key时又需要用到了邮箱地址。
这两个的邮箱地址不需要一致。config设置的只是代码提交者的信息。
使用下面命令将公钥打开

$ cat ~/.ssh/id_rsa.pub

为了验证是否成功,输入以下命令:

$ ssh -T [email protected]
Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access.

添加远程repository

要关联一个远程库,使用命令

$ git remote add origin git@github.com:yourName/yourRepo.git
#yourName和yourRepo表示你的github的用户名和新建的仓库

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用下面命令推送最新修改

git push origin master;

从远程库克隆

要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

git clone git@github.com:XXX/XX.git

分支管理

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch

切换分支:git checkout

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

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

删除分支:git branch -d

多人协作

多人协作的工作模式通常是这样:

首先,可以试图用git push origin branch-name推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name。

这就是多人协作的工作模式,一旦熟悉了,就非常简单。
参考资料

你可能感兴趣的:(git)