Git使用教程(无原理讲解)

1. 常用命令

以linux下为例,使用git前需要 sudo apt-get install git

  • git init 仓库初始化(也就是说运行这条命令后git就会自动记录所有更改)

  • git status . 查看当前路径下的状态

  • git commit -m "更改信息" 向git提交更改,并记录更改log

  • git push 把版本库的所有更新内容,向远端服务器(github,gitee…)推送

  • git pull 将远端服务器的内容拉取到本地(拉代码)

  • git log 查看此仓库的所有更改记录

  • git diff 比较自己都做了什么修改

  • git clone [url] 将远端服务器的所有代码复制到本地(clone只在第一次使用,后来的拉代码使用pull)


当我们修改了本地代码,向远端服务器推送时,操作步骤如下:

  1. git add . //添所有修改
  2. git commit -m "updtae main.cpp" //提交更改信息
  3. git push //推送代码到远端服务器

2.Github操作实例

  1. 首先,我在Github创建一个空的repo
    empty_repo
    url为liuup/git_sample

  2. 随便写几行代码,对本地文件夹执行git init
    init

  3. 对代码随便修改几处
    change

  4. 在本地记录修改内容

git add .
git commit -m "add hello,github"
add

  1. 可以查看log

git log
log

  1. 配置一下远端服务器
  • 记录 url https://github.com/liuup/git_sample
  • 执行git remote add sample https://github.com/liuup/git_sample 其中的sample是随便起的一个名字
  1. 向远端服务器推送代码,会提示输入账号名和密码

git push -u sample master
push
可以使用↓记住账号和密码
git config --global credential.helper store

  1. 从远端服务器拉取代码并查看log

    假设此时有别人更改了代码,那么我本人就需要更改我本地的代码和log

git pull
pull

  1. 查看本地的仓库

git remote
remote

  1. 远程仓库的重命名

git remote rename <old> <new>
rename

  1. 远仓库的删除

git remote remove example

  1. 在做项目的时候相信大家常常会后悔修改的内容

1、在未使用git add的时候 ———在工作区

git checkout -- filepathname //放弃修改某个文件
例如: git checkout -- readme.md
git checkout . //放弃所有修改的文件

git restore . //放弃所有修改的文件

2、已经使用git add的时候 ———在暂存区

git reset HEAD filepathname //恢复某个文件到工作区
例如: git reset HEAD readme.md
git reset HEAD . //恢复所有文件到工作区
git reset //恢复所有文件到工作区

注意:这里只是恢复到了工作区,如果想放弃修改的代码还需要执行步骤1(工作区)中的操作

3、已经使用git commit提交的了代码 ———在版本区(本地仓库)

1、如果你想全部撤回并回到远程仓库最新的状态(不保存代码修改)
1、git reset --hard HEAD^ //回退上一次commit的状态
//或git reset --hard commit_id //回退某个版本+id号就行
2、git pull //拉取一下远程最新的
2、如果你想拉回工作区并保存修改。只撤销 commit 和 add(保存代码修改)
git reset --mixed HEAD^

git reset HEAD^
3、如果你想撤销commit 但是不撤销 add(保存代码修改)
git reset --soft HEAD^ //只撤销了git commit , 修改后的代码还在暂存区
4 、终极版,由于你太懒,不管是暂存区,版本区,你只想撤销修改并回到远程最新的版本(不保存代码修改)
1 、git fetch --all
2、git reset --hard origin/master //git reset --hard origin/远程分支名
注意:这里只在暂存区和版本区哦

4、如果你git push 到了远程分支,这时候你后悔了怎么办

胆小误试,搞之前记得做备份
第一种
回滚远程分支的最近一次提交
git revert HEAD
git push origin 分支名
例如:我刚在master分支提交了一次
git revert HEAD
git push origin master
慎用啊~~~这种方式会在远程生成一个版本号

第二种
git reset --hard HEAD^ //回退上一个版本

git reset --hard commit_id //回退到某个版本 id就是你的版本号
git push origin HEAD --force //强制推送到远程,可能会受到保护

Reference

  1. 适合小白/外行的git与github最基础最浅显教程
  2. Git 基础 - 远程仓库的使用