新手建议详细看下!
1、首先设置 ssh密钥 。
git config user.name
git config -l
git config --global user.name "用户名"
git config --global user.email "常用邮箱"
git config -l
cd ~/.ssh
ls // 检查是否存在
ssh-keygen -t rsa -C "常用邮箱地址"
执行完上述命令 大概两次回车,会得到id_rsa和id_rsa.pub两个文件,密钥在id_rsa.pub下,记事本打开
复制,粘贴到git所在仓库设置ssh密钥的地方即可
2、日常开发中常用命令(自己常用做法)
基于远端某个分支创建自己的远端分支(例如远端分支test,远端创建自己的分支名叫 test_zk)
git clone 地址
git checkout -b test_zk origin/test_zk
开发中...
开发完成了,准备提交代码(我一般用git小乌龟进行提交,可以记住上次提交的信息,不需要再次复制)
git add .(暂存所有更改文件) 或着git add xxx (xxx为指定文件名,可空格添加多个文件,暂存指定文件)
git commit -m 'xxx'
到这一步,稍等等想一下,别人会不会有代码已经合入远端test分支了,所以保险起见保证代码最新要执行:
git checkout test
git pull origin test
git checkout test_zk
git merge test // 如果此步出现冲突,以别人代码为先进行修改,修改完就可以push了
git push origin test_zk
然后你远端提merge,让组长合入代码就ok了
以上属于正常的使用流程,下边是特殊情况
每次执行下边代码,在你的提交记录都会多一个merge记录,如果你有强迫症,频繁的更新远端
代码,那么一个你做一个需求,提交记录会多达10条以上,这并不是很美好的,看上去非常糟糕。
git checkout test
git pull origin test
git checkout test_zk
git merge test
解决方法:
(1)即将reset 的记录都是自己提交的
仓库提交记录后边会有一串字符:类似于这样 cd46b0b92151e5e1831390250dbfe2c512b771c1
找到想要回退到的地方,执行 (并不包含这一条)
git reset cd46b0b92151e5e1831390250dbfe2c512b771c1
git add .
git commit -m 'xxx'
git push origin test_zk --force
(2)即将reset 的记录有自己提交的,还有别人提交的,此时如果还按照(1)那么做,肯定会覆盖他人的提交记录。所以我的做法,基于远端test最新代码分支新建自己分支,本地基于远端自己分支创建新的本地分支,然后
git ck 旧分支
git stash save '开发中' // 将代码暂存,并命名为 ’开发中‘
git ck 新分支
git stash pop // 切换到你要修改代码的分支,执行后就可以将暂存的代码取出来了
git add .
git commit -m 'xxx'
git push origin 新分支
其他常用命令:
1、git remote update origin --prune 更新远端分支信息
2、设置别名
git config --global alias.st status
git config --global alias.ck checkout
git config --global alias.br branch
3、撤销
1. 找到上次git commit的id
git log
找到想撤销的commit_id
2. git reset commit_id
完成撤销,但是不对代码修改进行撤销,可以直接通过git commit 重新提交对本地代码的修改
3. git reset --hard commit_id
完成撤销,同时将代码恢复到前一commit_id 对应的版本
4、git reset --soft HEAD~2
表示撤销 2 条。~ 后面都数字就是撤销的 commit 数。