git命令

课程目的

  • 熟练常见git命令的使用

课程内容

基本概念

四个区
  • 工作文件夹
    • 不加入缓冲区git不管
  • 暂存区 Stage
    • 纳入git管理记录
  • 本地仓库 Local
    • 纳入版本控制
    • 是本地的库,其他人不生效
  • 远程仓库 Remote
    • 在远程服务器,可使用ssh/git/https协议

常见命令

1. 克隆到本地

作用:把远程库完整的拷贝一份到本地变成本地库,克隆到本地后所有的操作都针对本地库。当操作完成后推送到远程,即可把本地的更新同步到服务器。

命令: git clone 远程库

git clone git@gitlab.jirengu.com:homework/1.git

操作完成后本地多一个文件名为1的文件夹,可以直接改名字,改成homework。 屏幕快照 2015-01-30 上午10.24.04

进入到homework目录,查看所有的文件,会发现文件夹有个目录.git。 就是这个目录让一个普通的文件夹变成git可操作的本地库。

 cd homework
 ls -al

屏幕快照 2015-01-30 上午10.28.06

2. 更新

作用:在操作本地库前需要确保本地库的文件都是最新的。如果别人已经更新了远程库,而自己的本地库还是老代码,在提交时会出现错误。

命令:git pull

git pull

记住,每次在任何操作前,先执行git pull

屏幕快照 2015-01-30 上午10.29.12

4. 查看状态

作用: 查看本库下哪些文件没放入暂存区,哪些文件需要从暂存区删除

命令:git status

git status

屏幕快照 2015-01-30 上午10.30.57

3. 添加文件

作用:在git本地库文件夹新建个文件或者文件夹后并没有自动被git监管,需要把新添加的文件放入暂存区

命令: git add .,把当前所有文件下未放入暂存区的放入暂存区

git add .

屏幕快照 2015-01-30 上午10.37.42 屏幕快照 2015-01-30 上午10.38.27

4. 提交到本地

作用:在放入暂存区后,可以提交到本地库。

命令:git commitgit commit -am "第一次提交"

git commit 

提交的时候必须要输入提交描述。可以用git commit命令,会自动打开默认编辑器,在打开的文件下写入描述信息,保存。 也可以直接git commit -am "第一次提交"

屏幕快照 2015-01-30 上午10.45.38

提交到本地库之后就能推送到远程库了

5. 推送到远程

作用:把本地库推送到远程库

命令:git push -u origin master,把本地库推送到名教origin的远程库的master分支上

在推送之前一定要再次执行 git pull,可能在你改动的这段时间里又有人推送过远程库。如果有人推送过,那么执行git pull的时候会自动把别人更新的代码合并到本地。此时需要再次执行git commit

屏幕快照 2015-01-30 上午10.51.33

6. 修改文件

修改文件直接在文件修改后先git add ., 再git commit即可。

也可直接git commit -am "message"

屏幕快照 2015-01-30 上午10.57.32

7. 删除文件

命令:git rm file

屏幕快照 2015-01-30 上午11.01.06 屏幕快照 2015-01-30 上午11.02.03

多人协作

1. 分支操作

分支管理是git最重要特性,默认的分支是主干master

git branch: 查看当前所在的分支 屏幕快照 2015-01-30 上午11.08.11

git branch 分支名: 在本地库创建新的分支

git branch -a: 查看本地库和远程库的所有分支

git push -u origin 分支名: 把本地库创建的分支推送到远程库

屏幕快照 2015-01-30 上午11.12.45

git checkout 分支名: 切换到新的分支 屏幕快照 2015-01-30 上午11.16.53

屏幕快照 2015-01-30 上午11.17.18

屏幕快照 2015-01-30 上午11.17.50

2. 代码合并

一般的开发在分支开发,当在分支开发完成要发布时需要把分支的代码合并到主干。 先切换到master分支, 然后执行git merge.

git merge 分支名: 把分支名里的内容合并到当前分支

屏幕快照 2015-01-30 上午11.23.56

其它

1. git config

git最常用的配置是用户名和邮箱,所以在使用之前必须设置

git config --global user.name "若愚"
git config --global user.email "hunger@hunger-train.com"
git config user.name "若愚"                        #只对本项目生效
git config user.email "hunger@hunger-train.com"   #只对本项目生效
2. git remote

查看、设置、连接远程库

git remote -v
3. git reset

重置stage

git reset HEAD

重置本地

git reset  --hard HEAD

查看所有的提交

git reflog

屏幕快照 2015-01-30 上午11.50.00