Git 相关命令

Git 版本控制系统是一个分布式的系统(与SVN不一样),可用于保存工程源代码及其历史状态的命令行工具。

Git下载地址:https://git-scm.com/downloads,安装之后,windows系统中会出现:

点击打开 Git Bash,出现:

这是属于命令行模式的界面,而Git GUI是属于图形界面形式。

1. 首先,可以简要设置:

git是属于分布式管理工具,需要输入用户名和邮箱作为标识来进行管理,所以可以在命令行输入下列的命令来设置:

git config --global user.name "XXXXXX"
git config --global user.email "XXXXXXXXXX@163.com" 

不过因为加入了 --global,所以是全局设置,不是单独设置(或单文件设置,如果要设置单文件或仓库,不用 --global)。

2. 其次,此命令行属于linux类型,基本可以用linux shell的命令,例如:ls, cd, mkdir, rm, cat 等。

3. 建立仓库的方法:

# 1. 直接本地建立仓库:
cd some_directory    #进入某个文件夹
git init             #把该文件夹作为一个git仓库,会有.git隐藏文件出现

# 2. 从远程仓库克隆
cd some_directory #进入某个文件夹 git clone git@github.com:yuan0809
/python_crawler.git #地址要修改成自己的,这里测试均用的是ssh形式,而不是下面的http形式 # 或者http形式:https://github.com/yuan0809/python_crawler.git

地址从这里来:

4. 建立本地仓库与远程仓库的连接

当本地和远程都建立仓库之后,可以将两个仓库连在一起,其方法步骤如下:

  • 生成ssh-key:

在用户主目录下(例如C:\Users\Administrator),看看有没有.ssh目录,如果没有,则:

ssh-keygen  -t rsa –C “XXXXXXXX@163.com”

会出现两个文件:id_rsa和id_rsa.pub,id_rsa是私钥,id_rsa.pub是公钥。

  • 登录网页github,在Settings中添加ssh-key:也就是复制 id_rsa.pub 中的内容到Add SSH keys的空白key栏中。

  • 建立连接:
git remote add origin git@github.com:yuan0809/python_crawler.git

如果连接已存在,想删除,使用:git remote rm origin 进行删除即可(origin是连接名称)。

  • 提交到远程库:

如果远程库是空的,则第一次同步本地库时,需要使用 -u;如果不是第一次push,则不再需要 -u 参数。

git push -u origin master

如果远程库不是空的,会报错 —— error: failed to push some refs to xxxxxx。

此时需要先把远程库同步pull到本地库,然后在本地修改等,再进行 git push:

git pull

* 附加:其实最好的建立远程库和本地库的方法,个人认为是 git clone直接克隆远程库来创建本地库;然后修改本地文件,可以直接 git push origin master;若出现 error:src refspec master does not match any错误,表明没有完成add和commit过程,需要按顺序完成。

5. 一次基本的提交修改流程:

# 如果是先本地建立了仓库,然后进行修改,则需要先 add,再 commit 到本地库
git add xxx.txt
git commit -m "xxxx_log"

# 如果是要提交到远程库,则:
git add xxx.txt
git commit -m "xxxx_log"
git push origin master

6. 如果先修改了远程库,则必须要先同步到本地(git pull),先使本地库与远程库保持一致,再进行其他操作(个人认为:版本控制本身就是为了这个目的 —— 一致性);本地修改提交到远程库也是为了保持本地和远程数据的一致性。

7. 一些基本命令:

   git init          把当前目录变成git仓库
  git add xxxx      把xxxx文件添加到暂存区去。
  git commit –m “xxxx_log”  提交文件,–m后是注释
  git status        查看此时的仓库状态
  git diff xx       查看XX文件修改了那些内容
  git log           查看历史记录
  git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一个版本
  (如果想回退到100个版本,使用git reset –hard HEAD~100 )
  git reflog          查看历史记录的版本号id
  git checkout -- xx  把xx文件在工作区的修改全部撤销
  git rm xxxx         删除xxxx文件
  git remote add origin git@github.com:yuan0809/python_crawler.git 关联一个远程库
  git push –u origin master 把当前master分支提交到远程库(第一次提交)
  git clone git@github.com:yuan0809/python_crawler.git  从远程库中克隆
  git checkout –b test 创建test分支,并切换到test分支上
  git branch         查看当前所有的分支
  git checkout master 切换回master分支
  git merge test     在当前的分支上合并test分支
  git branch –d test 删除test分支
  git branch name    创建分支
  git stash          把当前的工作隐藏起来 等以后恢复现场后继续工作
  git stash list     查看所有被隐藏的文件列表
  git stash apply   恢复被隐藏的文件,但是内容不删除
  git stash drop    删除文件
  git remote        查看远程库信息
  git remote –v     查看远程库的详细信息
  git push origin master 提交本地库

注:git pull 与 git fetch的关系

git pull  = git fetch + git merge
git pull 更新本地库成为最新的远程库状态
git fetch 并没有更新本地库,是更新了与远程库关联的commit id,然后用来merge

#

 参考:

https://ishare.iask.sina.com.cn/f/12563920.html

https://www.runoob.com/w3cnote/git-five-minutes-tutorial.html

posted on 2020-08-24 00:15  落日峡谷  阅读(123)  评论(0编辑  收藏  举报

导航