创建仓库
在 git 中,一个文件创建后的状态是 untracked;当用 git add 指令将其添加之后就变为了 staged 状态;用 git commit 质量将其提交之后就变为了 unmodified 状态;对文件进行修改后变为 modified 状态;移除该文件后又变回了 untracked 状态。
在所要上传到仓库的文件夹下右击打开 Git bash。
git config --global user.name “zuzhiang” #设置用户名
git config --global user.email “zuzhiang@126.com” #设置邮箱
git init #建立 .git 文件夹,即 git 管理文件夹
git status [-s] #查看版本库的状态,即哪些文件没有上传
git add . #一次性提交所有未添加文件
git commit -m “test” #提交这次改变到本地数据库,-m 后面是备注信息
查看记录和修改
git log [–oneline] #查看修改记录
git diff #查看已修改的文件和上一次 add 的文件的不同
git diff --cached #查看本次 add 的文件和上一次 add 的文件的不同
git commit --amend --no-edit #将本次改变合并到上次改变中(不创建新的改变)
回到从前
每个 commit 都有自己的 id 号,HEAD 是一个指针,指向当前的提交
git reset “filename” #如果某个文件已经被 add,但是还想继续对其做修改,则可以用该语句将其变为 modified 状态。
git reset --hard HEAD #将 HEAD 指针指向上一次提交
git reset --hard HEAD^n #将 HEAD 指针指向上 n+1 次提交
git reset --hard “commit 的 id 号” # 和上一个语句是等价的
在回到过去的版本后,该版本之后提交的版本会“消失”,可用以下方法回到未来的版本
git reflog #查看所有提交的 id 号(包括未来版本)
git rest --hard “commit 的 id 号” #回到未来版本
git checkout “commit 的 id 号” --“filename” #只将指定的文件返回为 id 号对应的提交版本,而其他文件保持不变
分支管理
git branch “branch_name” #创建一个分支
git branch #显示所有分支
git chechout “branch_name” #切换到指定分支
git branch -d “branch_name” #删除指定分支
git checkout -b “branch_name” #创建分支并切换
git merge --no-ff -m “备注信息” “filename” branch_name #将分支合并到 master 分支中,–no-ff 是为了保存提交信息。首先要保证当前分支是 master
当两个分支的文件有冲突时,即两个文件各有对方没有的内容而导致无法判断哪个更新时,就需要人工的解决冲突,然后再合并
临时修改
在写当前代码时,如果突然又需要改别的东西,则可以先把当前代码暂存起来,改完突然要改的东西后再回头来处理。
git stash #将当前未 add 的文件暂存
git stash list #查看所有暂存的文件
git stash pop #提取暂存的文件,继续工作
GIthub
git init
git add README.md
git add .
git commit -m "first commit"
git remote add origin https://github.com/zuzhiang/ACM.git
git push -u origin master