共计 3844 个字符,预计需要花费 10 分钟才能阅读完成。
0、git 管理的是修改而不是文件!
1、在 git Bash 上设置用户名和 email
git config –global user.name “Cai”
git config –global user.email “1805800867@qq.com”
查看:git config –list
2、在空白目录“test”下创建 git 仓库,(test 文件夹就是工作区)
git init
3、将仓库目录下的文件 test.txt 添加到暂存区
git add test.txt
4、将暂存区下的文件提交到当前分支
git commit -m “ 提交的描述 ”
5、查看仓库中文件的状态:是否有文件改动了、是否有 add 过的文件
git status
6、查看文件具体修改的内容
git diff test.txt
7、当前版本出错,想要版本回退时从版本日志中寻找合适的版本,打印版本日志:
git log
8、回退到之前的版本
git reset –hard HEAD^ // 回退到前一个版本
git reset –head 1094a // 根据 commit id 回退到指定版本(commit id 写前几位就好)
git reset –hard HEAD~10 //HEAD~ 后面的数字 10 表示回退到上十个版本
9、回退到之前版本后后悔了,再变回来必须知道该版本的 commit id
git reflog // 查看命令记录
git reset –hard 1094a // 回退到指定版本
cat test.txt // 查看该文件内容
10、撤销工作区的修改(没有添加到暂存区)
git checkout — test.txt // 撤销对 test.txt 的修改
11、撤销暂存区的修改
git reset HEAD test.txt // 撤销对暂存区中 test.txt 的修改
12、从版本库中删除文件
git rm test.txt
git commit -m “ 删除了 test.txt 文件 ”
如果误删:git checkout — test.txt // 还原
13、如何将本地 git 仓库上传至 GitHub
1、打开 GitBash 输入:ssh-keygen -t rsa -C “110120119@qq.com” // 生成公钥和私钥
2、登录你的 GitHub,并在设置中添加 SSH keys,放入公钥。
3、在 GitHub 中新建一个空仓库,仓库建好后可以选择其列出的第二项推送本地仓库的方式。
4、详细参考链接: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000
14、多人协作时从 GitHub 远程库克隆仓库
git clone git@github.com:GithubName/test.git
15、多人协作时,采用分支管理:创建不同的分支,每个人在不同的分支上工作,最后合并分支。
git branch // 查看分支
git branch name // 创建分支
git checkout name // 切换分支
git checkout -b name // 创建并切换分支
git branch -d name // 删除分支(只能删已完成合并的分支)
git branch -D name // 强行删除分支(删未合并的分支)
git merge name // 合并 name 分支到当前分支
git merge –no-ff -m “ 这里合并了 dev 分支 ” dev // 使用普通模式合并分支,使其有据可查
git log // 查看分支历史
// 同一段内容在不同分支上不一致时无法合并分支,先解决冲突后再合并,然后删除创建的分支
//master 分支是主分支,通常不直接在主分支上修改,而仅用来发布新版本
// 可创建一个 dev 分支,所有人都在 dev 分支上创建自己的分支,所有修改都提交到 dev 分支,最终将 dev 分支作为新版本提交到 master 分支
16、暂存未完成修改的分支
git stash // 工作只进行到一半没法提交时,先把工作现场存起来,下次再做
git stash list // 查看保存的工作区列表
git stash pop // 恢复工作区并删除暂存的 stash
git stash apply // 恢复工作区,不删 stash
git stash drop // 删除 stash
// 比如是在 dev 分支上创建的工作分支,则到 dev 分支上恢复工作区
17、多人协作时,使用远程分支
git remote // 查看远程库,可以看到远程库名字,默认名:origin
git remote -v // 查看远程库详细信息,显示可以抓取和推送的 origin 的地址
git push origin master // 推送本地主分支(master)到远程分支(origin)
git push origin dev // 推送本地开发分支(dev)到远程分支
// 通常需要推送主分支和开发分支到远程分支中,而每个人基于开发分支自己创建的工作分支,视情况推送。
抓取远程分支时,只能 clone 主分支 master,如果要在 dev 分支工作就需要创建远程 dev 分支到本地
git checkout -b dev origin/dev // 在本地创建远程的 dev 分支,然后就可以在 dev 分支创建自己的工作分支了
git push origin dev // 时不时推送 dev 分支到远程
18、如果向远程分支推送失败
// 如果推送失败,因为你试图推送的提交与你的小伙伴的提交冲突了。
git pull // 把最新的提交抓下来,然后在本地合并,解决冲突后再推送
git branch –set-upstream-to=origin/dev dev // 如果 git pull 失败,可能忘了设置 dev 分支与远程 dev 分支的链接
// 再 git pull,然后推送,合并分支
19、标签管理
// 为了方便管理,可以为每次提交打一个标签,比如版本号
git tag v1.0 // 为当前分支创建标签
git tag // 查看所有标签
git tag v0.9 0536a // 如果忘了打标签,可以指定使用 git log 查到该分支版本的 commit id 打标签
git show v1.0 // 显示标签信息
git tag -a v1.0 -m “ 标签描述 ” 03366b // 创建带说明的标签
// 标签都是创建在本地的,不会自动推送到远程
git tag -d v1.0 // 删除本地标签
git push origin v1.0 // 推送一个标签到远程
git push origin –tags // 推送所有本地标签到远程
git push origin :refs/tags/v1.0 // 删除远程标签
20、使用码云
// 码云是国内的 Git 托管服务平台,和 Git 不同的是码云可以提供免费的私有仓库,而 Git 的私有仓库是收费的。
// 和 GitHub 一样,注册码云并添加公钥后在码云创建一个项目,然后使用下面的命令关联码云的远程库
git remote add gitee git@gitee.com:cai/testgit.git // 注意码云的远程库是 gitee 而不是 origin(可以使用 git push gitee master 推送了)
git remote -v // 查看远程库信息
git remote rm origin // 删除 origin 远程库(origin 是 GitHub 的远程库)
git remote add github git@github.com:OnlyChangeMyself/test.git // 重新关联 GitHub 的远程库,此时 GitHub 的远程库叫 github 了而不是 origin(可以使用 git push github master)
21、配置别名
git config –global alias.sta status // 使用 git sta 就等于 git status 了
git config –global alias.cmt commit //git cmt 等于 git commit
git config –global alias.lg “log –color –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit” //git lg
22、搭建 Git 服务器
// 其实就是搭建私有仓库
// 推荐使用 Linux 服务器如 Ubuntu 或 Debian
// 假设你有 sudo 权限的账号
第一步:sudo apt-get install git // 安装 Git
第二步:sudo adduser git // 创建一个 Git 用户,用来运行 Git 服务
第三步:创建证书登录:/// 收集所有需要登录的用户的公钥,就是他们自己的 id_rsa.pub 文件,把所有公钥导入到 /home/git/.ssh/authorized_keys 文件里,一行一个
第四步,初始化 Git 仓库:// 先选定一个目录作为 Git 仓库, 在该目录下输入命令(比如目录:/srv):
sudo git init –bare sample.git
sudo chown -R git:git sample.git
第五步:禁用 shell 登录,通过编辑 /etc/passwd 文件完成
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
第六步,克隆远程仓库:
git clone git@server:/srv/sample.git
23、参考自
[参考自廖雪峰的官方网站][1]