Git常用命令


找回來未提交的版本代碼

git reflog

8db5801 (HEAD -> xjl_settlement) HEAD@{0}: reset: moving to 8db580115fcee900dbf6c2201c30d8b75419c010
8db5801 (HEAD -> xjl_settlement) HEAD@{1}: reset: moving to 8db580115fcee900dbf6c2201c30d8b75419c010
8db5801 (HEAD -> xjl_settlement) HEAD@{2}: reset: moving to 8db580115fcee900dbf6c2201c30d8b75419c010
bfea408 HEAD@{3}: commit: <E5><AE><8C><E5><96><84><E4><BB><A3><E7><A0><81>
8db5801 (HEAD -> xjl_settlement) HEAD@{4}: reset: moving to 8db580115fcee900dbf6c2201c30d8b75419c010
8db5801 (HEAD -> xjl_settlement) HEAD@{5}: reset: moving to 8db580115fcee900dbf6c2201c30d8b75419c010
8db5801 (HEAD -> xjl_settlement) HEAD@{6}: reset: moving to 8db580115fcee900dbf6c2201c30d8b75419c010
8db5801 (HEAD -> xjl_settlement) HEAD@{7}: reset: moving to 8db580115fcee900dbf6c2201c30d8b75419c010
644ca6a HEAD@{8}: reset: moving to 644ca6a7602243580bd7338d2b06fdb7d0c3473a
8db5801 (HEAD -> xjl_settlement) HEAD@{9}: reset: moving to 8db580115fcee900dbf6c2201c30d8b75419c010
ebe1f4b HEAD@{10}: commit: bug fix
644ca6a HEAD@{11}: commit: <E5><88><B0><E8><B4><A6><E8><BF><87><E6><BB><A4><E4><BA><86><E9><87><91><E9><A2><9D>
8db5801 (HEAD -> xjl_settlement) HEAD@{12}: commit: <E9><85><8D><E7><BD><AE><E5><96><84><E7><89><88><E6><9C><AC>1.40
c3af696 (origin/xjl_settlement) HEAD@{13}: commit: <E5><8D><87><E7><BA><A7>androidx:<E4><BB><A5><E5><8F><8A><E5><AE><8C><E5><96><84><E7><89><88><E6><9C><AC>1.40
5651f53 HEAD@{14}: commit: <E5><A2><9E><E5><8A><A0><E5><B8><AE><E5><8A><A9><E4><B8><AD><E5><BF><83><E9><A1><B5><E9><9D><A2>.

我們要找回我們最晚的提交囤踩,只需要做如下操作:

git reset --hard ebe1f4b 

查看未推送的提交版本號

git cherry -v

執(zhí)行后效果

+ 8db580115fcee900dbf6c2201c30d8b75419c010 配置善版本1.40
+ 644ca6a7602243580bd7338d2b06fdb7d0c3473a 到賬過濾了金額
+ ebe1f4b1a74760604c21ff37eadf33c757fc7cb7 bug fix

打標簽實例

小精靈商戶通創(chuàng)建:

git tag -a v1.26.3 -m '小精靈商戶通v1.26.3'
git push origin v1.26.3
git tag

刪除標簽.

git tag -d v1.26.2
git push origin --delete v1.26.2

常見錯誤解決辦法

  • 如果push遇到在輸入密碼是熟錯后契沫,就會報這個錯誤fatal: Authentication failed for
    解決辦法:
git config --system --unset credential.helper
  • git命令每次提交都要輸入用戶名和密碼的解決辦法
    1,刪除當前遠程倉庫
    git remote rm origin
    2,攜帶用戶密碼添加遠程倉庫
    git remote add origin https://username:password@github.com/username/test.git
    3,提交代碼到主干
    git push origin master
    4,提交成功
D:\ZxnCode\demos\LoadingDemo>git push origin master
Enumerating objects: 81, done.
Counting objects: 100% (81/81), done.
Delta compression using up to 4 threads
Compressing objects: 100% (42/42), done.
Writing objects: 100% (60/60), 18.36 KiB | 2.04 MiB/s, done.
Total 60 (delta 9), reused 0 (delta 0)
remote: Resolving deltas: 100% (9/9), completed with 7 local objects.
To https://github.com/zhang721688/LoadingDemo.git
   fba3f30..7a5430d  master -> master

打標簽

https://blog.csdn.net/qq_35495763/article/details/85524175
同大多數(shù) VCS 一樣炼团,Git 也可以對某一時間點上的版本打上標簽桂塞。人們在發(fā)布某個軟件版本(比如 v1.0 等等)的時候篮条,經(jīng)常這么做刊愚。本節(jié)我們一起來學習如何列出所有可用的標簽踊跟,如何新建標簽,以及各種不同類型標簽之間的差別鸥诽。

  • 列出已有的標簽
    git tag
C:\ZxnWork\zhonghangyitong\aifuke>git tag
v1.0
  • 列出指定版本系列標簽
$ git tag -l 'v1.4.2.*'
v1.4.2.1
v1.4.2.2
v1.4.2.3
v1.4.2.4
  • 新建標簽附注的
    git tag -a v1.4 -m 'xxxx1.4'
C:\ZxnWork\zhonghangyitong\aifuke>git tag -a v1.0 -m 'hkzjv1.0'
  • 查看相應標簽的版本信息
    git show v1.0
C:\ZxnWork\zhonghangyitong\aifuke>git show v1.0
tag v1.0
Tagger: zxn <zhangxiaoning@avicare.cn>
Date:   Mon Feb 25 14:59:21 2019 +0800
'hkzjv1.0'
  • 把標簽傳送到遠端服務器上
    git push origin v1.5
C:\ZxnWork\zhonghangyitong\aifuke>git push origin v1.0
Enumerating objects: 1, done.
Counting objects: 100% (1/1), done.
Writing objects: 100% (1/1), 161 bytes | 161.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To http://47.94.38.6/chengongshun/aifuke.git
 * [new tag]         v1.0 -> v1.0
  • 刪除遠程庫中標簽
git tag -d v1.21
git push origin --delete v1.21
  • 獲取到tag對應的代碼
    就可以獲取到tag對應的代碼了商玫,但因為tag相當于一個快照,它的代碼是不能被修改的牡借。
git checkout tag_name

分支操作

  • 查看所有遠程分支
git branch -r
  • 分支的新建
    方式一:
    執(zhí)行命令
git checkout -b afk-walk

控制臺輸出結果

C:\MyWork\zhonghangyitong\aifuke>git checkout -b akf-walk
Switched to a new branch 'akf-walk'

方式二:

git branch afk-walk
git checkout afk-walk

提交分支

git commit -a -m 'added a new footer [issue 53]'

將分支推送到遠程倉庫

git push --set-upstream origin akf-walk

提交后的結果

remote: Resolving deltas: 100% (2727/2727), done.
remote:
remote: To create a merge request for akf-walk, visit:
remote:   http://47.94.38.6/chengongshun/aifuke/merge_requests/new?merge_request%5Bsource_branch%5D=akf-walk
remote:
To http://47.94.38.6/chengongshun/aifuke.git
 * [new branch]      akf-walk -> akf-walk
Branch 'akf-walk' set up to track remote branch 'akf-walk' from 'origin'.
  • 分支的切換
    切換到主分支
git checkout master

切換到akf-walk分支

git checkout akf-walk
  • 分支的合并
    接下來我們將akf-walk分支合并到master分支
    首先切換到master分支
    git checkout master
C:\MyWork\zhonghangyitong\aifuke>git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

合并
git merge akf-walk

C:\MyWork\zhonghangyitong\aifuke>git merge akf-walk
Updating 4b353f9..c264a65
Fast-forward
 .idea/caches/build_file_checksums.ser              | Bin 694 -> 694 bytes
 app/src/main/AndroidManifest.xml                   |   7 ++--
 .../afuke/home/aviation/sports/StepActivity.java   |  36 +++++++++++++++++++++
 app/src/main/res/layout/activity_step.xml          |   9 ++++++
 4 files changed, 49 insertions(+), 3 deletions(-)
 create mode 100644 app/src/main/java/com/afk/afuke/home/aviation/sports/StepActivity.java
 create mode 100644 app/src/main/res/layout/activity_step.xml

查看項目的分支(包括本地和遠程)
git branch -a
可以看到當前分支處于akf-walk分支上

C:\MyWork\zhonghangyitong\aifuke>git branch -a
* akf-walk
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/akf-walk
  remotes/origin/master
  • 分支刪除
    刪除本地分支akf-walk
    git branch -d akf-walk
    刪除失敗,因為我們處于akf-walk上
C:\MyWork\zhonghangyitong\aifuke>git branch -d akf-walk
error: Cannot delete branch 'akf-walk' checked out at 'C:/MyWork/zhonghangyitong/aifuke'

切換到master分支上
git check out master

C:\MyWork\zhonghangyitong\aifuke>git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

繼續(xù)刪除本地分支akf-walk
git branch -d akf-walk

C:\MyWork\zhonghangyitong\aifuke>git branch -d akf-walk
Deleted branch akf-walk (was c264a65).

刪除遠程分支
git push origin --delete akf-walk

C:\MyWork\zhonghangyitong\aifuke>git push origin --delete  akf-walk
To http://47.94.38.6/chengongshun/aifuke.git
 - [deleted]         akf-walk

查看刪除后分支情況
git branch -a
可以看到當前只剩下master分支

C:\MyWork\zhonghangyitong\aifuke>git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  • 分支的合并遇到?jīng)_突

https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6

  • 分支重命名
//git branch -m 舊分支名稱 新分支名稱
git branch -m aifke-step aifuke-step

切換遠程倉庫地址

  • 方式一:修改遠程倉庫地址
    【git remote set-url origin URL】 更換遠程倉庫地址拳昌,URL為新地址。
git remote set-url origin https://gitee.com/qqjd/wdy_android.git

【git remote -v 】查看遠程倉庫的地址

git remote -v 
  • 方式二:先刪除遠程倉庫地址钠龙,然后再添加
    【git remote rm origin】 刪除現(xiàn)有遠程倉庫
    【git remote rm oschina】 刪除現(xiàn)有遠程倉庫
    【git remote add origin url】添加新遠程倉庫
git remote rm origin
git remote rm oschina
git remote add origin https://gitee.com/qqjd/wdy_android.git

【git remote -v 】查看遠程倉庫的地址

git remote -v 

查看當前賬號以及修改

當使用不同的git賬號來更新或提交代碼的時候需要切換git的用戶.
查看自己的用戶名

git config user.name

查看自己的郵箱地址

git config user.email

修改自己的用戶名

git config --global user.name "xxx"

修改自己的郵箱地址

git config --global user.email "xxx"

多賬號切換

  • 切換賬號:zxn721588
    查詢用戶信息,輸入命令后連續(xù)回車.
    git config --list
    查看當前賬號:
    git config user.name
    git config user.email
    修改當前賬號:
    git config --global user.name "zxn721588"
    git config --global user.email "zhang721588@163.com"
    查看修改后的賬號:
    git config user.name
    git config user.email
    如果push遇到在輸入密碼是熟錯后炬藤,就會報這個錯誤fatal: Authentication failed for
    解決辦法:
    git config --system --unset credential.helper
  • 切換賬號:zxn
    git config --global user.name "zxn"
    git config --global user.email "zhangxiaoning@avicare.cn "
  • 切換賬號:zxn721588
    git config --global user.name "zxn721588"
    git config --global user.email "zhang721588@163.com"
    git config user.name
    git config user.email

常用命令

git init
建立git倉庫
git add .
將項目的所有文件添加到倉庫中
git commit -m “the commit message"
提交已經(jīng)被add進來的改動.
git commit -a
會先把所有已經(jīng)track的文件的改動add進來,然后提交(有點像svn的一次提交,不用先暫存). 對于沒有track的文件,還是需要git add一下.
git commit --amend
增補提交. 會使用與當前提交節(jié)點相同的父節(jié)點進行一次新的提交,舊的提交將會被取消.


git push
push your new branches and data to a remote repository.
git push [alias] [branch]
將會把當前分支merge到alias上的[branch]分支.如果分支已經(jīng)存在,將會更新,如果不存在,將會添加這個分支.
如果有多個人向同一個remote repo push代碼, Git會首先在你試圖push的分支上運行git log,檢查它的歷史中是否能看到server上的branch現(xiàn)在的tip,如果本地歷史中不能看到server的tip,說明本地的代碼不是最新的,Git會拒絕你的push,讓你先fetch,merge,之后再push,這樣就保證了所有人的改動都會被考慮進來.
git push --set-upstream origin master
如果報錯則指定分支推送
git push --set-upstream origin master

修改文件內(nèi)容執(zhí)行命令操作

1、查看代碼的修改狀態(tài)
git status

On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   src/main/java/com/xyc/redis/RedisApplication.java

no changes added to commit (use "git add" and/or "git commit -a")

2碴里、git add <file>/暫存需要提交的文件
git add .

$ git add src/main/java/com/xyc/redis/RedisApplication.java
warning: LF will be replaced by CRLF in src/main/java/com/xyc/redis/RedisApplication.java.
The file will have its original line endings in your working directory.

3沈矿、git commit/提交已暫存的文件
git commit

[master warning: LF will be replaced by CRLF in src/main/java/com/xyc/redis/RedisApplication.java.
The file will have its original line endings in your working directory.
13e60ac] 添加注釋
warning: LF will be replaced by CRLF in src/main/java/com/xyc/redis/RedisApplication.java.
The file will have its original line endings in your working directory.
 1 file changed, 11 insertions(+)

4、git pull/先同步代碼到本地
git pull

Already up-to-date.

5咬腋、git push origin <本地分支名>/再同步到服務器
git push origin 3am

$ git push origin master
Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (9/9), 904 bytes | 0 bytes/s, done.
Total 9 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To git@github.com:xiayongchao/redis.git
   a939a1e..13e60ac  master -> master

原文:https://blog.csdn.net/xyc_csdn/article/details/72976660

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末细睡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子帝火,更是在濱河造成了極大的恐慌溜徙,老刑警劉巖湃缎,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蠢壹,居然都是意外死亡嗓违,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門图贸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蹂季,“玉大人,你說我怎么就攤上這事疏日〕ソ啵” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵沟优,是天一觀的道長涕滋。 經(jīng)常有香客問我,道長挠阁,這世上最難降的妖魔是什么宾肺? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮侵俗,結果婚禮上锨用,老公的妹妹穿的比我還像新娘。我一直安慰自己隘谣,他們只是感情好增拥,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著寻歧,像睡著了一般跪者。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上熄求,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天渣玲,我揣著相機與錄音,去河邊找鬼弟晚。 笑死忘衍,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的卿城。 我是一名探鬼主播枚钓,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瑟押!你這毒婦竟也來了搀捷?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嫩舟,沒想到半個月后氢烘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡家厌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年播玖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饭于。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜀踏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出掰吕,到底是詐尸還是另有隱情果覆,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布殖熟,位于F島的核電站局待,受9級特大地震影響,放射性物質發(fā)生泄漏吗讶。R本人自食惡果不足惜燎猛,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一恋捆、第九天 我趴在偏房一處隱蔽的房頂上張望照皆。 院中可真熱鬧,春花似錦沸停、人聲如沸膜毁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瘟滨。三九已至,卻和暖如春能颁,著一層夾襖步出監(jiān)牢的瞬間杂瘸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工伙菊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留败玉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓镜硕,卻偏偏與公主長得像运翼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子兴枯,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容