Git简要教程

来源:互联网 发布:金融管理信息系统软件 编辑:程序博客网 时间:2024/05/16 06:47

Blog迁移至 https://yuxianda.github.io,
本文自2017-10-23 起再更新发布会在https://yuxianda.github.io中,当前可访问:https://yuxianda.github.io/ppt/git-learning.html查看。

本文作为自己的笔记留存。大家想学习我推荐这个:史上最浅显易懂的Git教程!

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

Git使用

1. 下载安装git-for-windows

在windows安装时选择如下选项:

  • Use Git from Git Bash only
  • Use the OpenSSL libriary
  • Checkout as-is,commit as-is
  • Use MinTTY
  • 其他默认即可

安装路径建议为C:/Git/或者D:/Git/

使用之前可在git安装目录新建名为home的文件夹。并将此路径添加到环境变量HOME中,添加到用户变量即可。这样在使用git时产生的所以配置文件均会保存到此目录中,并且加快git bash的启动速度。

否则环境变量中无HOME的变量,则会将配置信息以及生成的ssh密钥保存在当前登录用户的根目录,比如C:/Users/administrator/

2. 常用命令:

初始化git版本库:

git init

克隆版本库:

git clone <dir>

配置git联网的代理服务器:

git config --global http.proxy http://xxxx:8080git config --global http.proxy user:password@http://xxxx:8080 # 需验证用户密码时这样写git config --global https.proxy http://xxxx:8080 # 设置git访问https协议所使用的代理

取消git联网的代理服务器:

git config --global --unset http.proxy

配置用户:

git config --global user.email "You@example.com"

配置邮箱:

git config --global user.name "Your Name"

添加远程仓库:

git remote add origin git@github.com:yuxianda/dangjian.git

添加文件:

git add <filename>

提交:

git commit -m '<comment>'git commit -am '<comment>' # 若无增删文件,可这样使用,代替`git add .`&`git commit -m '<comment>'`

如果忘了加-m参数,会进入到linux的vim编辑界面,在输入了comment后按ESC,输入:wq按回车即可。

查看状态:

git status   # 在任何环节均可以查看状态。

查看所有分支

git branch --all 

新建分支:

git checkout -b <branch>

等同于:

git branch <branch>git checkout <branch>

git 本地分支与远程分支关联:

1) github上已经有master分支 和dev分支
git checkout -b dev   # 新建并切换到本地dev分支git pull origin dev   # 本地分支与远程分支相关联
2) 在本地新建分支并推送到远程
git checkout -b testgit push origin test   # 这样远程仓库中也就创建了一个test分支

发布dev分支

发布dev分支指的是同步dev分支的代码到远程服务器,与新建分支并推送类似

git push origin dev:dev  # 这样远程仓库也有一个dev分支了

在dev分支开发代码

git checkout dev  # 切换到dev分支进行开发# 开发代码之后,我们有两个选择# 第一个:如果功能开发完成了,可以合并主分支git checkout master  # 切换到主分支git merge dev  # 把dev分支的更改和master合并git push  # 提交主分支代码远程git checkout dev  # 切换到dev远程分支git push  # 提交dev分支到远程# 第二个:如果功能没有完成,可以直接推送git push  # 提交到dev远程分支# 注意:在分支切换之前最好先commit全部的改变,除非你真的知道自己在做什么

删除分支

git push origin :dev  # 删除远程dev分支,危险命令哦# 下面两条是删除本地分支git checkout master  # 切换到master分支git branch -d dev  # 删除本地dev分支

其他命令:

git loggit reflogssh-keygen -t rsa -C "You@example.com"

3. 使用github

设置ssh key

// 1. 创建 ssh key,出现提示一路按回车ssh-keygen -t rsa -b 4096 -C "your_email@example.com"// 2. 让 ssh-agent 自后台运行 (start the ssh-agent in the background)eval $(ssh-agent -s)// 3. 指定密钥给本地ssh-agentssh-add ~/.ssh/id_rsa// 4. 复制公钥,然后粘贴到github->Setting->SSH and GPG keys->New SSH keyclip < ~/.ssh/id_rsa.pub

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

$ ssh-keygen -t rsa -C "youremail@example.com"

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

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

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
廖雪峰的blog图片

图片来自: 廖雪峰的官方网站

点“Add Key”,你就应该看到已经添加的Key。

设置启动git bath后自动运行ssh-agent

将下面的代码保存到~/.profile 或者 ~/.bashrc~表示当前用户的用户目录。或者是前文提到的新建的home文件夹。

env=~/.ssh/agent.envagent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }agent_start () {    (umask 077; ssh-agent >| "$env")    . "$env" >| /dev/null ; }agent_load_env# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not runningagent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then    agent_start    ssh-add# 若要 ssh-agent 运行一段时间后自动停止,可将上面一行改成 ssh-add -t <seconds># 比如本人设置成了 ssh-add -t 1800elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then    ssh-addfiunset env

参考:

generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
adding-a-new-ssh-key-to-your-github-account
working-with-ssh-key-passphrases
CMD 和 Git 中的代理设置