Github使用常见问题及Git命令教程

来源:互联网 发布:北大青鸟软件开发 编辑:程序博客网 时间:2024/06/05 10:30

线上准备

注册

Github官网(用到邮箱:username@mail.com,设置了用户名:usename

新建项目

New repository.jpg
填好“项目名”和“项目描述”就成:(注意HTTPSSSH两个版本)
new_CSDN.jpg

线下配置

  1. 安装git 下载地址:https://git-scm.com/downloads
  2. 配置SSH KEY
    ssh-keygen -t rsa -b 4096 -C "username@mail.com"遇到提示不断回车就行
  3. 找到生成的key
    cd ~/.ssh
  4. 找到id_rsa.pub这是你的RSA公钥,复制,然后打开网站:https://github.com/settings/ssh
  5. 选择newsshkey,把你的公钥粘贴进去。
  6. 设置全局变量
    git config --global user.name "你在Git上注册的用户名(usename)"
    git config --global user.email "你在Git上注册的邮箱(username@mail.com)"

本地同步项目创建

接着上图:
new_SSH
按其上的步骤操作:

  • 在本地建立一个文件夹,名为你的项目名
  • 在里面创建一个README.md文件
  • 右键该文件夹(或者按住Shift+右键),选中git Bash,依次输入
    echo "# CSDN" >> README.md-------------往README.md写入"# CSDN"git init------------本地库初始化git add README.md------------追踪README.md文件,放置到暂存区git commit -m "first commit"------------该文件被提交到本地库git remote add origin git@github.com:HLBayes/CSDN.git------------将仓库连接到远程服务器git push -u origin master------------改动提交到远端服务器(并且是master分支)

最后准备工作算是全部结束,效果如下:
CSDN

克隆线上项目

  1. 开始克隆github的项目,进入你项目的比如说:https://github.com/HLBayes/CSDN,找到clone or download ,点它,它会给你个地址,然后记住那个地址。https://github.com/HLBayes/CSDN.git
  2. 将该项目克隆到本地:git clone https://github.com/HLBayes/CSDN.git
    或者你想换一个本地存储路径,新建一个文件夹,然后进去,git init就可以了。

最常用命令

一般来说,日常使用只要记住下图6个命令,就可以了。

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库
    图解命令.png

    1. git pull————可以从远程仓库更新代码到本地
    2. git add [file] ————新增一个文件到git仓库中,用这个命令,添加文件改动,
    3. git commit -a————可以提交你所做的修改,并写评论。
    4. git push -u origin master————将你commit的代码推送到master分支
    5. git checkout [file]————恢复暂存区的指定文件到工作区
    6. git fetch [remote]————下载远程仓库的所有变动
    7. git clone [url]————下载一个项目和它的整个代码历史

分支新建切换合并

git checkout -b mybranch 新建并切换到mybranch分支
git checkout master 切换分支到master
git branch -d mybranch 删除mybranch分支
比如,如果要将开发中的分支(develop),合并到稳定分支(master),
首先切换的master分支:git checkout master
然后执行合并操作:git merge develop
当你fork了别人的仓库时,想要保持更新要做如下操作

git remote add upstream https://github.com/xxxxx/xxxxx.gitgit fetch upstreamgit merge upstream/master

如何进行回滚git log 查看提交的历史commit以及他的ID

git log查看提交的历史commit以及他的ID
git revert <commit log string>是撤消该commit,作为一个新的commit。
git revert是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留(这个方法是一般的做法,并不会删除任何commit,而是以一个新的commit形式去做回滚操作)
git reset是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区(使用reset前请三思,因为他会将你所有的文件与记录都删掉的)
当你做了某个commit,但是又不想要了,想要删除,可以使用以下方法删除:
git rebase -i HEAD~10
这里的10意味着rebase最近的10条记录,输入这条命令后,会让你选择删除哪条commit,保留哪条commit,非常好用。这方法参考了stackoverflow
当然,如果你不介意丢失文件操作的话,可以使用git reset --hard <sha1-commit-id>这会删除掉你所有的数据,强制回滚到commit的那个状态,非常麻烦后果很严重,不建议使用。
git reset --soft <sha1-commit-id>还有一个soft模式,这个我没用过,可能没有hard的后果严重。

解决文件冲突

如果你遇到这样的错误:
Please commit your changes or stash them before you merge.就证明你有文件冲突了
有两种解决方法:
1. git stash,注意!这个方法会将你的所有操作全部删除,回滚到没冲突的状态。然后使用git pull就可以解决冲突了。
2. git mergetool这个命令,你要做的就是编辑主窗口的那个文件,解决掉冲突,最后用git commit -m “merge”来提交你的操作,就可以恢复正常,推荐使用这个方法。

另外还有一些基础的教程:

Git基本操作(中文)
Git指南(英文)
Git入门教程

原创粉丝点击