下载 https://tortoisegit.org/download/ 此处包含两个文件,一个是安装程序,一个是语言包 生成快捷方式,在当前用户下,命令cd ~ 进入账号根目录touch .bashrc 比如添加别名 alias www=‘cd /D/phpStudy/PHPTutorial/WWW’ alias o=‘explorer .’ alias hstead=‘cd /d/homestead’ alias ea=‘vim ~/.bashrc’ alias ra=‘source ~/.bashrc’ alias vm=‘ssh vagrant@192.168.10.10’
第一步,生成Key 新安装程序包含文件PuTTYgen密钥生成工具
新版本界面如下图,选择ECDSA或者ED25519密钥类型, 点击Generate, 然后不停地移动鼠标(估计为随机数生成密钥) Save private key 保存密钥到本地磁盘,命名git.ppk, 此文件非常重要,提供TortoiseGit程序作为拉取代码的凭证, 后续使用PuTTYgen程序,可继续加载密钥字符串 第二步,配置gitlab凭证 登陆git仓库,点击个人头像,弹出下拉框中选择setting,选择SSH Keys, 添加上一步生成的key 第三步,配置TortoiseGit程序 进入仓库,右键TortoiseGit->设置->远端, 设置PuTTYgit密钥文件(第一步已经生成) 如果你是第一次配置,或许你还需要设置Git->编辑全局.git/config中的用户名和邮箱 [user] name = your_name email = your_mail
设置用户 git config --global user.name “dev_guo” git config --global user.email “Dev_guo@patazon.net” 创建SSH Key ssh-keygen -t rsa -C “youremail@example.com” id_rsa是私钥,不能泄露出去。 id_rsa.pub是公钥,可以放心地告诉任何人。 基本使用 初始化目录 git init 查看远程分支 git branch -r git remote show origin 创建分支 git checkout master git checkout -b dev 第一次拉取远程分支 推荐: git checkout master git checkout -b local_branch origin/remote_branch 或者 git checkout master git checkout -b local_branch git pull origin remote:local 提交流程 git pull origin remote_branch:local_branch git status git add . git commit -m ‘message’ git push origin master 删除分支 git branch -d dev
git branch -D dev 删除本地库中这些相比较远程库中已经不存在的分支(之前从远程库拉取过,可能之后被其他人删除了) git remote prune origin untracks file #选择分区提交 git checkout dev git add .
git clean -fd 切换版本(注意不是切换分支) git reflog git log git reset --hard xxxxx 合并分支
git branch
git checkout master
git merge dev 合并分支操作实战, 注意,此处为master合并dev分支过程 git checkout master echo ‘test’>readme.txt git add . git commit -m ‘create readme.txt’ git checkout -b dev echo “create git branch dev”>>readme.txt git add . git commit -m ‘append readme.txt content’ git checkout master git merge dev 权限问题 git config --add core.filemode false 查看日志 git log git reflog 版本回退
git checkout . [或者具体文件] git clean -fd
git reset HEAD . [或者具体文件]
git reset --hard head^ [或者版本号]
git reset --hard head^^ 指定到某个版本 此处恢复的是远程版本 git log $ git log commit 49f6f3ad7f49a15c5532279e51a0802ae76133ef Author: pecwu email@hank.com Date: Tue Apr 18 09:00:28 2017 +0800 commit all commit 38169dbc76df69391f97b9d1cecb8559e31aab70 Author: pecwu email@hank.com Date: Tue Apr 18 08:53:54 2017 +0800 commit git file git reset 指定版本号即可 git reset --hard 38169 查看每次操作branch的信息 回滚到某个版本后, 之前的版本git log 就再也找不到,入需要, 则用git reflog 查找以前提交的版本号, 这样就可以再次恢复 $ git reflog 49f6f3a HEAD@{0}: reset: moving to 49f6f ee068fb HEAD@{1}: reset: moving to ee068fb 49f6f3a HEAD@{2}: reset: moving to 49f6f 38169db HEAD@{3}: reset: moving to head^ 49f6f3a HEAD@{4}: reset: moving to HEAD^ 743c401 HEAD@{5}: commit: change 49f6f3a HEAD@{6}: commit: commit all 38169db HEAD@{7}: commit: commit git file 164ef3b HEAD@{8}: commit: test git file ee068fb HEAD@{9}: commit (initial): first commit 忽略版本控制 修改.gitignore添加你略略的文件即可 上述方法仅对本来就不在分支内的文件有效,否则你可以先删除一下文件在分支的信息 当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用 git rm --cached file_path git commit -m ‘delete remote somefile’ git push 本地回退checkout 文件还没提交到远程服务器 git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。 git status git checkout – test.txt 总结 场景1: 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令 git checkout – file。 场景2: 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步, git reset HEAD file,等于重置缓存区 按场景1操作,恢复版本 git reset head [filename] git checkout – filename 场景3: 已经提交了不合适的修改到版本库时,想要撤销本次提交 git reflog git reset --hard gitid 场景4: untracked file删除
git clean -f
git clean -nfd
文献来源 https://www.cnblogs.com/gzpblog/p/5463031.html https://www.zybuluo.com/pecwu/note/785860